這兩天在復(fù)習(xí)計算機(jī)組成原理,看到補(bǔ)碼部分,把我搞暈了。。求大佬們幫一下。。書中有個例題是這樣描述的:求出補(bǔ)碼的位數(shù)為n時-2^n-1的補(bǔ)碼表示當(dāng)補(bǔ)碼的位數(shù)為n位時,-2^n-1=< X真 <2^n-1當(dāng)補(bǔ)碼的位數(shù)為n位時,其模為2^n.[-2^n-1]補(bǔ) = 2^n-2^n-1 = 2^n-1 = 1 0...0 (n-1個0)(mod 2^n) 這個公式的后半部分是什么意思?。壳鞍氩糠治抑朗歉鶕?jù) X真 = 2^n + X真推導(dǎo)出來的,可是后面的2^n-2^n-1為什么等于2^n-1?還有最后的1 0...0(n-1個0)是怎么得出來的?或者說為什么這樣寫?求各路大神指教,我找了很多視頻,都是只教怎么求反碼、補(bǔ)碼,沒有解釋這個公式的...
1 回答

慕斯王
TA貢獻(xiàn)1864條經(jīng)驗 獲得超2個贊
取 n = 8, 你的問題就變?yōu)?-128 的補(bǔ)碼為什么 是 1000 0000
忘掉 所謂的補(bǔ)碼計算公式吧 -> (正數(shù)不變,負(fù)數(shù)除符號位之外,其余各位取反,最后+1)
補(bǔ)碼的本質(zhì) 同余
同余 運算了解哇?
1 ≡ 257 (mod 256) 0 ≡ 256 (mod 256) -1 ≡ 255 (mod 256) -> -1 的補(bǔ)碼是 255: 1111 1111-2 ≡ 254 (mod 256) -> -2 的補(bǔ)碼是 254: 1111 1110
所以
-128 ≡ 128 (mod 256) -> -128 的補(bǔ)碼是 128: 1000 0000
說的遠(yuǎn)一點,數(shù)軸上任何一個整數(shù)都可以通過加減 256的整數(shù)倍 跳到0-255之間,它最后落到的位置就是它的補(bǔ)碼
比如計算機(jī)存儲 -1, 實際就是存儲的 255:1111 1111
- 1 回答
- 0 關(guān)注
- 652 瀏覽
添加回答
舉報
0/150
提交
取消