Java整数索引到位位置

时间:2016-10-25 12:26:31

标签: java bit bitmask

我试图通过二进制和动作来制作动态方法来检查数字。 我尝试了各种不同的方法,但却无法绕过它。

我需要的是一个转换整数索引位置并返回布尔值的方法。

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

2 个答案:

答案 0 :(得分:4)

您必须使用bit shifting运算符:

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

答案 1 :(得分:4)

只需使用位移:

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

但请注意,只有==1 indx == 1才能获得(val & bitmask) != 0 。你可能意思是:

{{1}}