【发布时间】:2017-06-19 15:01:16
【问题描述】:
当我对一个字节进行异或运算时,可以说 -1(以字节为单位)与 2(int)我得到 -3 作为结果,而我希望该操作给我一个正整数。这是由于 2 的补码表示和类型提升。我想知道是否有办法在java中使用无符号字节。
int x = 2;
byte y = -1;
System.out.println(x^y);
输出
-3
我发现了两个很好的类似问题here 和here。但是我想要一些方法或按位运算来返回一个 int,它可以在以后转换为没有 2 的补码表示的字节。
【问题讨论】:
-
y的符号扩展本身并不重要,结果的低 8 位仍然是您想要的,所以如果您要转换回字节无论如何它将是正确的。
标签: java bit-manipulation type-conversion bitwise-xor