请问大佬们, 如何用 JavaScript 最快获取二进制每一位的方法?

例如 0b11001110 我想知道里面每一位的数字是0还是1?

阅读 2.2k
3 个回答

写起来最快想必是 [...num.toString(2)].map(Number)

如果数字在位运算允许的范围内的话感觉位运算会更快吧?

const toBits = number => {
    const bits = []
    do {
        bits.unshift(number & 1)
        number >>= 1
    } while (number)
    return bits
}

确实快

image.png

let res = (num >> index) % 2

image.png

const a = 12 // 0b1100
let i = 0;
while(true){
    if( a >> i){
        const result = a >> i & 1;
        console.log(result);
    } else {
        break;
    }
    i++;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题