【发布时间】:2015-03-28 00:18:46
【问题描述】:
我正在尝试按位或在 Java 中的 byte 值上执行。
比如我在跑步:
byte b = (byte)0b11111111;
int result = 0 | b;
我对此的预期结果是0b00000000 00000000 00000000 11111111 或255。但是,我收到了-1 或0b11111111 11111111 11111111 11111111。
我假设 Java 在执行操作之前通过符号扩展将我的 byte 转换为 int,我只是好奇是否有一种方法可以在不使用位掩码的情况下获得我想要的结果 (@987654329 @)。
【问题讨论】:
-
"不使用位掩码" 答案是使用位掩码。在 Java 中真的没有办法解决这个问题。
标签: java binary bit-manipulation twos-complement sign-extension