java中的位掩码

时间:2015-04-12 03:44:30

标签: java bitmask

请向我解释在java中如何以及在何处使用Bit Mask:

我不理解下面的代码:

int bitmask=1;    
if ((bitmask & 1) == 1) // what it does

1 个答案:

答案 0 :(得分:7)

运算符&的结果值是操作数值的按位AND。

这意味着当应用于两个整数(以二进制表示形式)时,它将产生一个整数,只有当两个位在1的相同位置时,每个位才会被设置为1,否则为0。

int a =     0b01010111;
int b =     0b11111111;
//result in 0b01010111

System.out.println(a & b);//print 87 which is decimal representation of 0101 0111

现在,如果您理解我的解释,您向我们展示的示例相当于

if(true)//because 1 == 1 will always be true.

在两个相同的数字(1和1)上执行&会自动返回此数字(在这种情况下为1)。