Java 位位置的整数索引

Java Integer index to bit position

我正在尝试创建一个动态方法来通过二进制与运算来检查数字。 我尝试了各种不同的方法,但就是无法理解它。

我需要的是一种转换整数索引位置和 returns 布尔值的方法。

private boolean bitwiseAnding(int val, int indx){
    //TODO Convert indx to a bitmask here
    return (val & bitmask)==1;
}

例如:

1 = 0x01
2 = 0x02
3 = 0x04
4 = 0x08
and so on

您必须使用 bit shifting 运算符:

private boolean bitwiseAnding(int val, int indx){
    int mask = 1 << (indx-1);
    return (val & mask) != 0;
}

只需使用移位:

int bitmask = 1 << (indx-1);

但请注意,如果 indx == 1,您只会对 ==1 成立。您可能是指:

(val & bitmask) != 0