位运算求模
利用位运算来取代部分模运算,更快
但是要有前提:
a % b == a & (b - 1) 如此替换
使用位运算只能在b 为 2^n时使用
所有 2^n 的数,二进制表示为:
1000…000,1 后面跟 n 个 0
而 2^n - 1 的二进制为:
0111…111,0 后面跟 n 个 1
N: 1000…000
N-1: 0111…111
商数:X / 2^n ---> X >> n
那么余数:X & (2^n - 1)
X / 2^n 是 X >> n,那么 X & (2^n - 1) 就是取被移掉的后 n 位,也就是 X % 2^n。

浙公网安备 33010602011771号