原码、反码、补码

来源:互联网 发布:富士人机界面编程软件 编辑:程序博客网 时间:2024/06/08 12:30
各种数据在计算机中的表现形式称为机器数,其特点是以二进制的方式存储,数的符号用0(正)和1(负)来表示,机器数对应的实际数值为数的真值。为了便于运算,机器数可采用原码,反码,补码等不同的编码方法。

假设机器字长为8,采用二进制位的方式表示数据,最高位为符号位,0表示正,1表示负
1、原码
原码就是符号位加上真值的绝对值。
假设数值X的原码记作[X]原,则:
[+1]原   = 0000 0001       [-1]原   = 1000 0001
[+127]原 = 0111 1111       [-127]原 = 1111 1111
[+10]原  = 0000 1010       [-10]原  = 1000 1010
0的原码有2种表示方式,分别为:
[+0]原  = 0000 0000        [-0]原  = 1000 0000

2、反码
正数的反码就是原码,负数的反码就是其原码按位取反(除符号位)。
假设数值X的反码记作[X]反,则:
[+1]反   = 0000 0001       [-1]反   = 1111 1110
[+127]反 = 0111 1111       [-127]反 = 1000 0000
[+10]反  = 0000 1010       [-10]反  = 1111 0101
0的反码有2种表示方式,分别为:
[+0]反   = 0000 0000       [-0]反   = 1111 1111


3、补码
正数的补码就是原码,负数的补码是其反码+1
假设数值X的补码记作[X]补,则:
[+1]补     = 0000 0001       [-1]补     = 1111 1111
[+127]补 = 0111 1111        [-127]补 = 1000 0001
[+10]补   = 0000 1010       [-10]补   = 1111 0110
0的补码有1种表示方式,为:
[+0]补 = [-0]补 = 0000 0000


总结:
1、正数的原码,反码和补码相同
2、负数的反码是其原码按位取反(除符号位),负数的补码是其反码+1

3、0的表示方式比较特殊

 0的原码有2种表示方式,分别为:[+0]原  = 0000 0000        [-0]原  = 1000 0000

 0的反码有2种表示方式,分别为:[+0]反   = 0000 0000       [-0]反   = 1111 1111
 0的补码有1种表示方式,为: [+0]补 = [-0]补 = 0000 0000

原创粉丝点击