如何确定一个数字中的所有设置位是否也设置在另一个数字中?

Chi*_*hin 2 java bit-manipulation

给定2个二进制字符串a并且b长度相同(例如111000110000),是否可以检查是否ba使用按位运算设置了所有设置位?在上面的例子中,b = 110000在位置1和2(从左到右)有两个设置位,并且这些位也被设置a = 111000.

我可以按字符比较两个字符串,但这样会太慢.我知道我可以将字符串转换为数字,Integer.parseInt(a, 2);但我不知道用于实现任务的按位操作.

Joh*_*ica 7

掩盖这些位,然后检查它们是否仍然全部设置.

int a = 0b111000;
int b = 0b110000;

if ((a & b) == b) {
    ...
}
Run Code Online (Sandbox Code Playgroud)