※ 引述《orc1424 ()》之銘言:
: 原理上面是如果一個數是負數(用4bit之2's complement表示)
: 1001 就先取補數 0111 然後看其值 喔 是7所以是-7這樣
: 但是例如-8
: 實際上面應該要怎麼作呢?我要怎麼知道她是-8
: 是要從-8取補數是自己( 1000 => 1000 )這樣知道的?
: 還是應該要從-7-1來取得?
: 是該怎麼作?
: 想要模擬一個長bit的整數
: 所以想考慮這個問題
two's complement 有數學表示法,
MSB 的符號是負的, 其他項的符號是正的.
例如
0111= -(0*2^3) + 1*2^2 + 1*2^1 + 1*2^0 = 7
1111= -(1*2^3) + 1*2^2 + 1*2^1 + 1*2^0 = -1
1000= -(1*2^3) + 0*2^2 + 0*2^1 + 0*2^0 = -8
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.66.171.13