二進制的原碼,反碼,補碼,移碼


在計算機中,負數以其正值的補碼形式表達。
反碼表示法規定:正數的反碼與原碼相同,負數的反碼為對該數的原碼除符號位外各位取反。
補碼表示法規定:正數的補碼與原碼相同,負數的補碼為對該數的原碼除符號位外各位取反,然后在最后一位加1.
https://www.cnblogs.com/liaosc/p/10029988.html

真值:

比如: 17,-17, 0, 0.625,-0.625

原碼:

即真值的二進制表達方法,但是有符號位(最高位)和數值位的區分
比如:
- (17)原: (00010001)
- (-17)原: (10010001)

反碼:

規定: 正數的反碼與原碼相同,負數的反碼為對該數的原碼除符號位外各位取反。
比如:
- (17)反: (00010001)
- (-17)反: (11101110)
意義: 反碼沒有任何意義,只是為了計算補碼
注意規律: (17)反 和 (-17)反 完全相反,包括符號位

補碼:

規定: 正數的補碼與原碼相同,負數的補碼為對該數的原碼除符號位外各位取反,然后在最后一位加1.
比如:
- (17)補: (00010001)
- (-17)補: (11101111)
意義: 在計算機中,負數以其正值的補碼形式表達。
注意規律: (17)補 和 (-17)補 相加: 二進制(1 0000 0000),超出8位表達,在硬件中就可以表示為(0000 0000)即為0
目的: 使用補碼作為負數的表達形式,是為了兩者相加即為;也是為了在做減法(-)操作時,可以轉換為加法(+)

移碼:

規定: 把補碼的符號位取,無論正數還是負數。
比如:
- (17)移: (10010001)
- (-17)移: (01101111)
意義: 移碼的意義是方便比較大小,正數的符號位是1,負數的符號位是0,這樣就可以不區分符號位,直接比較大小
注意規律: 數值位本就可以通過二進制比較大小,符號位修改后,也可用於比較


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM