Some time ago I've seen somewhere a trick to perform modulo operation using bit operators. But now I cannot in any way perform 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With