今天在刷题解的过程中看到了如下代码:

使用位运算代替取模运算旨在提高运行效率
在查阅资料后得知,a%b在b=2^n时,可以简化位a&(b-1);
当b=2^n时,b-1的二进制值也就是011...111(n位1),那么a&(b-1)也就是取a的后n位二进制值。也就是小于b的部分,也是a%b的值。
文章介绍了在编程中,当除数b为2的幂时,可以用位运算a&(b-1)来替换a%b操作,以提高运行效率。这是因为b-1的二进制形式包含n个连续的1,a与(b-1)按位与的结果等同于a对b取模的结果,即获取a的后n位二进制值。
今天在刷题解的过程中看到了如下代码:

使用位运算代替取模运算旨在提高运行效率
在查阅资料后得知,a%b在b=2^n时,可以简化位a&(b-1);
当b=2^n时,b-1的二进制值也就是011...111(n位1),那么a&(b-1)也就是取a的后n位二进制值。也就是小于b的部分,也是a%b的值。

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