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

标签 java bitmask

<分区>

请向我解释如何以及在何处使用 java 中的位掩码:

我不明白下面的代码:

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

其他问题不能准确回答为什么?

最佳答案

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

这意味着当应用于两个整数(以二进制表示)时,它将产生一个整数,其中每个位将设置为 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)。

关于java - 如何以及在何处使用 Java 中的位掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29585720/

相关文章:

c++ - 当使用位域 union 替换位掩码时,访问非事件成员,好还是未定义?

c - 位掩蔽问题的好的解决方案是什么?

c - 用于组合信用卡网络的位掩码枚举

java - 尝试使用 Java 使用 KeyChainStore 签署数据

java - 使用java swing

java - 错误原因 java.lang.IndexOutOfBoundsException : Index: 0, Size: 0

java - 暂停打印在 Java 中不起作用

java - 从 Firestore 随机获取文档

c++ - 用于获取 vector 元素的所有组合的递归与位掩码

c - 如何实现读取变量每一位的函数?