在计算机中是以数值是以该数的补码形式来表示.
正数:原码=反码=补码
+12
原码:0,1100
反码:0,1100
补码:0,1100
负数:反码=除符号位原码各位取反; 补码=反码+1
-12
原码:1,1100
反码:1,0011
补码:1,0100
Note:逗号之前为符号位
[x]补码 : 连同符号位在内,每位取反,末位加一,即得到[-x]补码.
System.out.println(Integer.toBinaryString(-12));
System.out.println(Integer.toBinaryString(12));
输出结果:
11111111111111111111111111110100
1100
-
原址:补码转原数值公式(非常简单实用的公式)
左边的x指计算机中的二进制补码,右边的x是实际的数值。 ↩︎