最佳答案
0xf2 = 11110010
第一位是符号位。所以符号是负号。要获得实际值(value),请接受 2 的赞美。
11110010 -> 1's complement -> 00001101 -> Add 1 -> 00001110 = -14
同样,取0xfffff...f2
。 开头的符号位。取2的补码。
1111-1111-1111.....0010 -> 1's complement -> 00000000000...1101 -> Add 1 -> 0000...1110 -> -14
前面的任何数字 1111...
不会对负符号数的值产生影响,就像 0000..
不会为正值。
以上计算是针对 8 位有符号 0xf2
和 32 位有符号 0xfffffff2
的,两者数学上相等。
关于java - 理解二进制补码中的十六进制数到十进制数 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369065/