开发者

Other ways of performing modulo operation

开发者 https://www.devze.com 2023-03-17 08:15 出处:网络
Some time ago I\'ve seen somewhere a trick to perform modulo operation using bit operators. But now I cannot in any way pe开发者_如何学JAVArform proper operation. Anyone knows how to do it ? From what

Some time ago I've seen somewhere a trick to perform modulo operation using bit operators. But now I cannot in any way pe开发者_如何学JAVArform proper operation. Anyone knows how to do it ? From what I remember it was faster than using %.


The "trick" is to binary AND a value with 1. Any odd number must have the first bit set to 1.

So

var foo = 7;

if( foo & 1 ) { // true
}

Using a bitwise AND has a better performance in almost all platforms / browsers.

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


You can do the modulo of 2^k (a power of 2) by ANDing your value with (2^k)-1.

0

精彩评论

暂无评论...
验证码 换一张
取 消