本文主要是介绍求模运算和按位与运算之间的联系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
%与&
在写一个哈希相关的代码时,发现求模运算可以用位运算替代。
把x值映射到0~target-1的某一个值key,取模运算key = x % target,target是256(只有模是2^x时才能用按位与替代)。此时可以用x & (target-1)来替代计算key。
原因是2^x-1的二进制表示是"00…00111…11",高位全部为0,低位为1。与其进行与运算,结果只由低位决定。
例:
11%8,即0000 1011 & 0000 0111 = 0000 0011 = 3.
这篇关于求模运算和按位与运算之间的联系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!