提问人:mishar 提问时间:9/29/2019 更新时间:9/29/2019 访问量:230
Java:将 int 转换为字节时,二的补码是如何工作的?
Java: How does two's complement work when casting an int to a byte?
问:
我有一个关于将 int 转换为字节时 2 的补码如何工作的问题。例如,当转换值介于 127 和 256 之间的 int 时,我得到负值,我想知道如何。我知道高阶位被抛出,所以 256 和 512 之间的任何值都会导致字节变量保持 int 值减去 256;但我很好奇如何计算出二进制中的负值。
例如,我很好奇以下代码是如何工作的:
int i = 140;
byte b = (byte) i;
System.out.println(b); // outputs -116
140 是二进制的10001100,而我收集到的二进制补码是二进制的。在二进制中,10001100如何成为输出 -116 所需的二元补码二进制值?
答: 暂无答案
评论