%与& 在写一个哈希相关的代码时,发现求模运算可以用位运算替代。 把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.