先抛结论:取模运算(a%b)在当b为2^n时可简化为a&(b-1)
证明一:
1.当b为2^n时,b-1的二进制为011..11(0后面跟n个1).此时a&(b-1)即取a二进制右面n位
2.当b为2^n时,a/b的意义就是a右移n位。而右移的n位的值,就是a%b的值
两个值相等
证明二:
直接给a、n取一个值,直观的看到
看不懂请留言,初步只是给自己整理知识用的。后续有时间整理修订
来源:CSDN
作者:克克克
链接:https://blog.csdn.net/kjlist2017/article/details/104113265