【发布时间】:2017-09-23 19:17:10
【问题描述】:
这是我第一次看到按位运算和位掩码。我已经看到了一些使用 C 和 C++ 的示例,但我正在寻找使用 Java 的说明。
我有以下 32 位字符串
0000 0000 1010 0110 0011 1000 0010 0000
但我想以粗体 (00101) 提取 21 到 25 位并忽略其他所有内容。最后,我希望我的输出结果是整数 5(二进制的 0101)
使用位掩码,我可以使用什么方法将那个位部分作为我的输出结果?
【问题讨论】:
-
将数字右移 21 位;
&和0x1F。 -
Java 有一个按位移位运算符 >> 所以只需将您的 rbit 移到最低位(即右移 21 位。