※ 引述《orc1424.bbs@ptt.cc ()》之銘言:
> 原理上面是如果一個數是負數(用4bit之2's complement表示)
> 1001 就先取補數 0111 然後看其值 喔 是7所以是-7這樣
> 但是例如-8
> 實際上面應該要怎麼作呢?我要怎麼知道她是-8
> 是要從-8取補數是自己( 1000 => 1000 )這樣知道的?
> 還是應該要從-7-1來取得?
> 是該怎麼作?
> 想要模擬一個長bit的整數
> 所以想考慮這個問題
sign bit與數值部份要分開,
1000的sign bit 1已經代表負號了,
你不可以把sign bit再拿來當做數值部份使用,
拿來用的數值部份應該是0,求出一補數是111,
二補數則是1000也就是十進位數的8,
於是,(1000)2 = (-8)10
--
好康訊息!
Openfind 提供免費撥接電話:40508888
帳號:openfind 密碼:openfind
--
http://bbs.openfind.com.tw
※來源:220.139.*