标签: bit-shift modulo
如何使用位运算符检查32位整数是否是16的乘法? 我知道理论是使用bithift到4,任何人都可以解释为什么跟随表达式是真的吗?
boolean b = 16 >> 4 == 17 >> 4;
答案 0 :(得分:1)
x & 0x0F
0将为0x10
0
0x10
bool div16 = (x & 0x0F) == 0;
如果你想用位移来检查:首先移出四位,然后用零移回
bool div16 = x == (x >> 4) << 4;