Other ways of performing modulo operation

前端 未结 2 1813
情深已故
情深已故 2020-12-18 07:17

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 ?

相关标签:
2条回答
  • 2020-12-18 07:50

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

    0 讨论(0)
  • 2020-12-18 07:58

    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!');
        }
    }
    
    0 讨论(0)
提交回复
热议问题