用八位二進制表示-128的原碼、反碼、補碼

-128沒有原碼和反碼,只有補碼,補碼爲 1000 0000。
對n位二進制原碼、反碼、補碼的取值範圍
在這裏插入圖片描述
對於八位的二進制來說,原碼和反碼範圍均爲-127到127,補碼的範圍爲-128到127

???爲什麼補碼有-128呢???問題就出在了0上,我們知道原碼與反碼有正負零之分但補碼並沒有。

[+0]原碼=0000 0000, [-0]原碼=1000 0000

[+0]反碼=0000 0000, [-0]反碼=1111 1111

[+0]補碼=0000 0000, [-0]補碼=0000 0000

那麼-0的補碼是如何求得的呢?
負數的補碼是反碼的整體加一,符號位上的進位捨棄,所以-0的第一位是數值爲並不是符號位。
!!!補碼的符號位保持不變不等於原碼的第一位不變。故保持-0的符號位1不變,反碼進行加一操作:1111 1111 + 1 = 1 0000 0000,數值位產生了進位,所以補碼能表示的個數中比原碼、補碼多了一個數 1 0000 0000,即-128.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章