在JavaScript中,我如何知道单个位是开(1)还是关(0)?
function isBitOn(number, index)
{
// ... ?
}
// Example:
let num = 13; // 1101
isBitOn(num, 0); // true
isBitOn(num, 1); // false
isBitOn(num, 2); // true
isBitOn(num, 3); // true
我知道在JavaScript中我们有按位操作。 但是我怎样才能使用它们,或者使用任何其他方法,读取单个位呢?
将数字转换为二进制,然后检查位:
null
function isBitOn(number, index) {
var str = number.toString(2);
return str[str.length - index - 1] == 1 ? true : false;
}
let num = 13;
console.log(isBitOn(num, 0));
console.log(isBitOn(num, 1));
console.log(isBitOn(num, 2));
console.log(isBitOn(num, 3));
JavaScript保留了C二进制运算符的传统。 您使用“索引”将值1向左移动,然后您和结果转换为您感兴趣的数字:
null
function isBitOn(number, index) {
return Boolean(number & (1 << index));
}
console.log(isBitOn(13, 0));
console.log(isBitOn(13, 1));
console.log(isBitOn(13, 2));
console.log(isBitOn(13, 3));
console.log(isBitOn(13, 4));
console.log(isBitOn(13, 5));
console.log(isBitOn(13, 6));