您的位置:首页 > 其它

与运算代替模运算小记

2015-02-11 21:21 169 查看

等式

先抛出一个等式,

X & (2n−12^n-1) == X % 2n2^n

右边式子,也就是模运算,最后的结果为[0, 2n−12^n-1],而左边的式子,也就是与运算,可以将X的高位清掉,最后剩下的是X的[0, n)位上面的数值,这个值当然也是∈\in[0, 2n−12^n-1],所以左右两边是相等的。

对比

模运算经常用来做哈希,利用上面的等式,我们完全可以使用与运算来代替模运算,

好处,与运算要比模运算来得快;

限制,模数必须是2的次幂;

参考资料

http://ifeve.com/dissecting-disruptor-whats-so-special/

http://mechanitis.blogspot.com/2011/06/dissecting-disruptor-whats-so-special.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: