Q:Explain what the following code does: ((n & (n-1)) == 0).
A: 其作用是判断n是否为0 或者是2的整数幂
因为如果n为2的m次幂的话,那么其二进制表示中只有第m位为1,其余全部为0(从0位开始)
本文介绍了一种通过位操作判断一个数是否为2的幂的方法。利用位运算的特性,当一个数n为2的幂时,n的二进制表示中仅有一位为1,其余均为0。通过n与n-1的按位与运算结果为0来实现这一判断。
Q:Explain what the following code does: ((n & (n-1)) == 0).
A: 其作用是判断n是否为0 或者是2的整数幂
因为如果n为2的m次幂的话,那么其二进制表示中只有第m位为1,其余全部为0(从0位开始)

被折叠的 条评论
为什么被折叠?