我从Java教程中得到了这个,我迷路了,我只是不明白当你使用&操作
class BitDemo {
public static void main(String[] args) {
int bitmask = 0x000F;
int val = 0x2222;
// prints "2"
System.out.println(val & bitmask);
}
}
如何将两个整数(位掩码和val)显示14? 我没有关于你如何操纵它们来制作数字的概念。
答案 0 :(得分:7)
&安培;是bitwise AND运算符。
让我们将这个运算符的真值表放在两个变量中:
p q p & q
0 0 0
0 1 0
1 0 0
1 1 1
您的二进制值等于(您可以使用Integer.toBinaryString(int i)
):
00000000001111
10001000100010
应用&收益率:
00000000001111
& 10001000100010
__________________
00000000000010
等于2。
如何使两个整数(位掩码和val)显示14?
只需将面具设为0xFFFF
(仅为'1'),将val设为14(十六进制为0x000E
)。
int bitmask = 0xFFFF;
int val = 0x000E;
这是一种可能的解决方案。
答案 1 :(得分:5)
&安培;是按位AND运算符。
a 0x000F = 0000 0000 0000 1111
b 0x2222 = 0010 0010 0010 0010
-----------------------------------
a & b = 0000 0000 0000 0010 = 2
要获得14,请尝试0x000F & 0x000E
。
答案 2 :(得分:0)
&
是Bitwise AND运算符
int a = 4;
int b = 7;
System.out.println(a & b); // prints 4
meaning in an 32 bit system
00000000 00000000 00000000 00000100
00000000 00000000 00000000 00000111
===================================
00000000 00000000 00000000 00000100