1. 原码、反码、补码、移码
原码:最高位为符号位(0表示正,1表示负),其余为为其真值的绝对值
如8的原码为 00001000,-8的原码为10001000
正数的反码、补码与其原码相同
反码:负数的反码为其原码的基础上除符号位外其余取反(1取反为0,0取反为1)
如-8的反码为11110111
补码:负数的补码为其反码的基础上末位+1
如11110111末位+1后为11111110
无论正负,其移码都为其补码的基础上符号位取反
2.java中的数据是以补码的形式存储
如题:
byte b=(byte)129;
System.out.println(b);
//控制台输出结果: -127
//过程如下:
//129的补码为 010000001
//从低位开始取8位得 10000001
//减1得 10000000
//取反码为 11111111即-127