使用位运算代替取模(%)

*爱你&永不变心* 提交于 2020-01-30 13:28:42

先抛结论:取模运算(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取一个值,直观的看到

 

看不懂请留言,初步只是给自己整理知识用的。后续有时间整理修订

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!