在计算机中,正数使用原码进行存储,而负数使用补码进行存储。那么什么是原码?,什么是补码呢?通过下面文章可以了解原码、反码、补码
原码
原码就是一个数字的二进制表示形式,但是需要区分数据类型
比如byte b = 1;
对应原码:00000001 一共8位,高位用0占位
比如int i = 1;
对应原码:00000000000000000000000000000001 一共32位,高位同样使用0占位
反码
反码就是除符号以外的其他位相反,1变0,0变1。需要注意的是正数的反码不变,只有负数才有反码。
比如byte b = 1;
原码:00000001
反码:00000001
比如byte b = -1;
原码:10000001
反码:11111110
补码
补码就是在反码的基础上+1,需要注意的是正数补码不变,只有负数才有补码。而计算机存负数往往以补码的方式存储。
比如byte b = 1;
原码:00000001
反码:00000001
补码:00000001
比如byte b = -1;
原码:10000001
反码:11111110
补码:11111111