原码、反码、补码详解

2017-12-02 23:36:00
linefo
原创
410
【机器数】
机器数是一个数在计算机的二进制形式。机器数是带符号的,用一个数的最高位存放符号,正数为0,负数为1。

【真值】
真值指机器数去掉第一位的符号位

【原码】
原码就是符号位加上真值的绝对值,如果是8位二进制中:
[+1]的原码 = 0000 0001
[-1]的原码 = 1000 0001
所以8位二进制数的取值范围就是
[1111 1111 , 0111 1111]即[-127 , 127]

【反码】
正数的反码是其本身,负数的反码在其原码的基础上,符号位不变,其余各个位取反
[+1]的原码为[0000 0001],反码为[0000 0001]
[-1]的原码为[1000 0001],反码为[1111 1110]
负数的反码难以马上看出数值,通常需要转换成原码去计算

【补码】
正数的补码是其本身,负数的补码在其原码的基础上,符号位不变,其余各位取反,最后+1(即在反码的基础上+1)
[+1]的原码为[0000 0001],补码为[0000 0001]
[-1]的原码为[1000 0001],反码为[1111 1110],补码为[1111 1111]

在计算机中,负数采用补码表示
文章分类
联系我们
联系人: Mr.Chen
QQ: 185391277