java - 按位运算来比较值

标签 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

最佳答案

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;}

关于java - 按位运算来比较值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28831028/

相关文章:

PHP翻转32位整数

java - 无法通过按位运算获得长整型值

java - 计算一个位置中每种类型的件数的优雅方法

java - 如何使用 sapjco3 和 Eclipse 连接到 SAP 系统?

java - 如何在 Spring JPA Repository 方法中使用 @Query 注释来描述连接

java - 构造函数中输入的类型不正确

c# - 减去两个 System.Runtime.InteropServices.ComTypes.FILETIME 对象的最安全方法是什么

c - 身份属性的位操作

c - 从 SPI 寄存器读取数据并存储到数组中

java - 如何同步 jBatch 执行?