按位运算来比较值

时间:2015-03-03 11:47:13

标签: java bitwise-operators

我有四种类型的扇区,每个扇区用二进制字节表示:

sector one:   0000 0001
sector two:   0000 0010
sector three: 0000 0100
sector four:  0000 1000

现在,我得到一个返回整数值的函数,我需要检查这个值是否是扇区之一。检查它的最有效方法是什么?我的意思是按位操作。

int val = func();
//check if val is one of the sector

1 个答案:

答案 0 :(得分:1)

boolean isSectorOne (int val) {return (val & 0x01) == 0x01;}
boolean isSectorTwo (int val) {return (val & 0x02) == 0x02;}    
boolean isSectorThree (int val) {return (val & 0x04) == 0x04;}
boolean isSectorFour (int val) {return (val & 0x08) == 0x08;}