我试图通过二进制和动作来制作动态方法来检查数字。 我尝试了各种不同的方法,但却无法绕过它。
我需要的是一个转换整数索引位置并返回布尔值的方法。
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
答案 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}}