今天在刷题解的过程中看到了如下代码:
![](https://img-blog.csdnimg.cn/img_convert/fa75196c483b6d64531740756e4c085c.png)
使用位运算代替取模运算旨在提高运行效率
在查阅资料后得知,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的值。
今天在刷题解的过程中看到了如下代码:
使用位运算代替取模运算旨在提高运行效率
在查阅资料后得知,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的值。