在java中如何以及在何处使用位掩码

2022-09-03 14:14:43

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

我不明白下面的代码:

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

其他问题没有确切地回答为什么?


答案 1

运算符的结果值是操作数值的按位 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)。&


答案 2

推荐