gpt4 book ai didi

java - 位移位操作 java - 输出到 8 位而不是 9 位

转载 作者:行者123 更新时间:2023-11-30 03:28:15 25 4
gpt4 key购买 nike

因此,我正在执行 java 位移位,然后执行 XOR,但是,字符串上的位移位返回 9 位而不是 8 位的字符串。

int temp = Integer.parseInt(binary, 2);
String shift = String.format("%8s", Integer.toBinaryString(temp << 1)).replace(' ', '0');
int sum = Integer.parseInt(shiftedInput) ^ Integer.parseInt(xorConstant);

在上面的代码中,二进制是一个字符串“10000011”,所以 8 位长。因此 temp 变成了一个值为 131 的 int,但是 shift 的值为“100000110”,这破坏了我其余的计算。有人知道这是为什么吗?提前感谢所有帮助:)

最佳答案

由于 Java 中的整数有 32 位(4 个字节),因此您的移位将返回一个二进制值为 00... 0001 0000 0110 的整数,正如您已经计算出来的。

要删除不需要的 24 位,可以使用 and 运算符。

((temp << 1) & 0xff)

返回您期望的结果

       temp: 0000 0000 0000 0000 0000 0001 0000 0110
and 0xff: 0000 0000 0000 0000 0000 0000 1111 1111

result: 0000 0000 0000 0000 0000 0000 0000 0110

关于java - 位移位操作 java - 输出到 8 位而不是 9 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29676101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com