年轻人,*起袖子起来干,实现个人小康! ------ 博客首页

位运算求模

利用位运算来取代部分模运算,更快
但是要有前提:

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。

posted @ 2021-08-26 15:12  weiwen11  阅读(140)  评论(0)    收藏  举报