执行模运算的其他方式
前段时间我在某处看到了使用位运算符执行模运算的技巧。但现在我无法以任何方式执行正确的操作。有人知道该怎么做吗?据我记得它比使用 % 更快。
Some time ago I've seen somewhere a trick to perform modulo operation using bit operators. But now I cannot in any way perform proper operation. Anyone knows how to do it ? From what I remember it was faster than using %.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
“技巧”是将一个值与 1 进行二进制
AND
。任何奇数都必须将第一位设置为 1。因此,
使用按位 AND 在几乎所有平台/浏览器中都有更好的性能。
The "trick" is to binary
AND
a value with 1. Any odd number must have the first bit set to 1.So
Using a bitwise AND has a better performance in almost all platforms / browsers.
您可以通过将您的值与 (2^k)-1 进行 AND 运算来进行 2^k(2 的幂)的模运算。
You can do the modulo of 2^k (a power of 2) by ANDing your value with (2^k)-1.