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
我正在尝试创建一个动态方法来通过二进制与运算来检查数字。 我尝试了各种不同的方法,但就是无法理解它。
我需要的是一种转换整数索引位置和 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