前段时间我已经看到了使用位运算符执行模运算的技巧。但是现在我不能以任何方式执行正确的操作。谁知道怎么做?从我记得它比使用%更快。
答案 0 :(得分:10)
“技巧”是二进制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!');
}
}
答案 1 :(得分:8)
你可以通过与(2 ^ k)-1进行AND运算得到2 ^ k(2的幂)的模数。