执行模运算的其他方式

Other ways of performing modulo operation

本文关键字:其他 方式 运算 执行      更新时间:2023-09-26

不久前,我在某个地方看到了使用位运算符执行模运算的技巧。但现在我无论如何都无法进行正确的手术。有人知道怎么做吗?据我记忆所及,它比使用%要快。

"诀窍"是将AND二进制为一个值为1的值。任何奇数的第一位都必须设置为1。

所以

var foo = 7;
if( foo & 1 ) { // true
}

使用逐位AND在几乎所有平台/浏览器中都具有更好的性能。

for(var loop = 0; loop < 10; loop++) {
    if( loop & 1 ) {
        console.log('I am ', loop, ' and I am odd!');
    }
}

您可以通过将值与(2^k(-1进行"与"运算来实现2^k(2的幂(的模运算。