可能的重复:
按位与代替模运算符 https://stackoverflow.com/questions/3072665/bitwise-and-in-place-of-modulus-operator
有人可以解释使这两个表达式等效的基本原理吗?我知道它之所以有效,是因为 64 是 2 的幂,但是我如何在逻辑上或数学上从除法变为按位与?
操作x % 64
返回余数,当x
除以 64,(假设 x>0)必须是 0 到 63 之间的数字。让我们以二进制形式看一下:
63dec = 0011 1111b
64dec = 0100 0000b
您可以看到 64 的任意倍数的二进制表示形式必须以 6 个零结尾。因此,任何数字除以 64 时的余数就是原始数字,除了最右边的 6 位之外,所有位都被删除。
如果将一个数字与 63 进行按位与,结果就是这 6 位。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)