在计算机内,有符号数有3种表示法:原码、反码和补码。
有符号数 是针对二进制来讲的,用最高位作为符号位。
“0”代表“+”,“1”代表“-” ;其余数位用作数值位,代表数值。
原码: 最高位为符号位(0表示正,1表示负),其余位表示数值的大小。
反码: 反码通常是用来由原码求补码或者由补码求原码的过渡码。最高位为符号位(0表示正,1表示负)。当原码为正数时,反码和原码一致;当原码为负数时,符号位不变,其余各位取反,得到的就是反码。
补码: 最高位为符号位(0表示正,1表示负)。当原码为正数时,补码和原码一致;当原码为负数时,补码等于数值的反码加一。
下面通过实际例子来巩固下:
我们以 十进制数值 7 和 -7 为例
数值 | 原码 | 反码 | 补码 |
---|---|---|---|
7 | 0000 0111 | 0000 0111 | 0000 0111 |
-7 | 1000 0111 | 1111 1000 | 1111 1001 |
注意:在计算机系统中,数值一律用补码来表示和存储。