在計算機中,負數以其正值的補碼形式表達。
反碼表示法規定:正數的反碼與原碼相同,負數的反碼為對該數的原碼除符號位外各位取反。
補碼表示法規定:正數的補碼與原碼相同,負數的補碼為對該數的原碼除符號位外各位取反,然后在最后一位加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,這樣就可以不區分符號位,直接比較大小
注意規律: 數值位本就可以通過二進制比較大小,符號位修改后,也可用於比較