首页 > js/jquery bit位计算

js/jquery bit位计算

写一个函数实现传值(如:way=2) 选出是popo [2的1次方=2]输出为[1]; 
如果way=5 选出的是邮件和短信【2的0次方+2的2次方=5】
输出的值为[0,2]

# -------------------------
# bit位|  0  |   1  |  2  |
# 意义 |邮件 | popo | 短信|
# -------------------------

function getBitsPosition(n) {
    var r = [];
    var i = 0;
    while (n > 0) {
        if (n & 0x01 === 1) {
            r.push(i);
        }
        i++;
        n = n >> 1;
    }
    return r;
}

for (var i = 0; i < 10; i++) {
    console.log(`${i}: ${getBitsPosition(i)}`);
}

输出

0:
1: 0
2: 1
3: 0,1
4: 2
5: 0,2
6: 1,2
7: 0,1,2
8: 3
9: 0,3
【热门文章】
【热门文章】