检查数字是否可以被 16 整除
Check if number can be divided by 16
如何仅使用位运算符检查 32 位整数是否为 16 的乘积?
我知道理论是使用 bitshift 向右移动 4 谁能解释为什么以下表达式为真?
boolean b = 16 >> 4 == 17 >> 4;
x & 0x0F
对于可被 16 整除的数字将是 0
(0x10
)
bool div16 = (x & 0x0F) == 0;
如果你想用位移来检查这个:首先移出四位,然后移回零
bool div16 = x == (x >> 4) << 4;
如何仅使用位运算符检查 32 位整数是否为 16 的乘积? 我知道理论是使用 bitshift 向右移动 4 谁能解释为什么以下表达式为真?
boolean b = 16 >> 4 == 17 >> 4;
x & 0x0F
对于可被 16 整除的数字将是 0
(0x10
)
bool div16 = (x & 0x0F) == 0;
如果你想用位移来检查这个:首先移出四位,然后移回零
bool div16 = x == (x >> 4) << 4;