二进制数的原码.反码及补码表示
(注意:理解的彻底这里)
二进制数的原码、反码及补码表示
1、机器数与真值
机器数:数在机器中的编码表示。
真 值:一般书写表示的数。
机器数中,数值和符号完全数字化。计算机在进行数字运算时,采用把各种符号位和数字位一起编码的方法。常见的有原码、反码及补码表示法。
2、原码表示法
原码表示法是机器数的一种简单表示法。其符号位用0表示正数,用1表示负数,数值一般用二进制形式表示。
[x]原=符号位+绝对值
若x=+1100110 则 [x]原=01100110
x= -1100110 [x]原=11100110
(说明:其实就是把符号+-改为01)
所以用8位二进制数来表示整数原码时,其表示范围: 最大数:01111111,为(+127)D
最小数:11111111,为(-127)D
思考:0的原码有两种表示形式!!
3、反码表示法
机器数的反码可由原码得到。如果机器数是正数,
则机器数的反码与原码一致;
若机器数是负数,则机器数的反码是它的原码(符号位除外)的各位取反而得到。即:
正数:[x]反=[x]原
负数:[x]反=对[x]原除符号外的各位取反
若x=+1100110 则[x]反=01100110
x= -1100110 [x]反=10011001
4、补码表示法
机器数的补码也可由原码得到。如果机器数是正数,则机器数的反码与原码一致;若机器数是负数,
符号位除外)的各位取反,并在末位加1而得到。即:反码是作为求补码的中间过程。
正数:[x]补=[x]原
负数:[x]补=[x]反+1
若x=+1100110 则[x]补=01100110
x= -1100110 [x]补=10011010
注意:补码的0只有一种表示形式!
[+0]原=00000000 [-0]原=10000000
[+0]反=00000000 [-0]反=11111111
[+0]补=[-0]补=00000000
所以用8位二进制数来表示整数补码时,其表示范围:
最大数:01111111,为(+127)D 最小数:10000000,为(-128)D