Java负数存储方式 intjava补码反码
程序员文章站
2023-12-28 19:10:10
...
正数的原码、反码、补码是相同的。
负数的原码是去掉最高的符号位的其他位, 后面的位取反为反码,反码+1后为补码。
算法为: 负数的绝对值(原码)= 取反(补码-1)。
java中以int为例来实现算法:
输出为:
ffffffc1
-63
负数的原码是去掉最高的符号位的其他位, 后面的位取反为反码,反码+1后为补码。
算法为: 负数的绝对值(原码)= 取反(补码-1)。
java中以int为例来实现算法:
int i = -63; System.out.println(Integer.toHexString(i)); //算法在这里: System.out.println("-" + (( ~( i & 0x7FFFFFFF-1) ) & 0x7FFFFFFF ));
输出为:
ffffffc1
-63