原码
原码是一种计算机中对数字的二进制定点表示方法。
原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1,其余位表示数值的大小。对于0,有两种表示:+0和-0。
来自百度百科
如果感觉不是很好懂,我们举两个例子:
八位二进制数:
00000001 最高位为0,二进制转换为十进制是1,所以为+1
10000001 最高位为1,二进制转换为十进制是1,所以为-1
如果去除最高位的符号位,还剩7位,最大可表示为1111111,即十进制数127。加上符号位11111111~01111111。
所以八位二进制数原码的范围为:-127~127
反码
正数的反码:与其原码相同。
负数的反码:符号位保持为1,对每位取反。
还是举个两个例子:
00000001 其反码就为本身:00000001
10000001 其反码为:11111110
对于0而言,原码有两种情况,自然反码也有两种情况:
00000000 —> +0 —> 00000000
10000000 —> - 0 —> 11111111
+127的反码就为