我从Java教程得到了这个,我迷路了,我只是不明白当你使用&运算符时会发生什么
class BitDemo {
public static void main(String[] args) {
int bitmask = 0x000F;
int val = 0x2222;
// prints "2"
System.out.println(val & bitmask);
}
}
Run Code Online (Sandbox Code Playgroud)
我如何使两个整数(位掩码和val)显示14?我没有关于你如何操纵它们来制作数字的概念.
&是按位AND运算符.
让我们把这个运算符的真值表放在两个变量中:
p q p & q
0 0 0
0 1 0
1 0 0
1 1 1
Run Code Online (Sandbox Code Playgroud)
您在二进制中的值等于(您可以使用Integer.toBinaryString(int i)):
00000000001111
10001000100010
Run Code Online (Sandbox Code Playgroud)
应用&收益率:
00000000001111
& 10001000100010
__________________
00000000000010
Run Code Online (Sandbox Code Playgroud)
等于2.
我如何使两个整数(位掩码和val)显示14?
只需将掩码设置为0xFFFF(仅"1"),将val设置为14(0x000E十六进制).
int bitmask = 0xFFFF;
int val = 0x000E;
Run Code Online (Sandbox Code Playgroud)
这是一种可能的解决方案.
&是按位AND运算符.
a 0x000F = 0000 0000 0000 1111
b 0x2222 = 0010 0010 0010 0010
-----------------------------------
a & b = 0000 0000 0000 0010 = 2
Run Code Online (Sandbox Code Playgroud)
要获得14,请尝试0x000F & 0x000E.
| 归档时间: |
|
| 查看次数: |
1566 次 |
| 最近记录: |