Javascript-获取指定的位值为int,而不使用Number(n).toString(2)

Javascript-获取指定的位值为int,而不使用Number(n).toString(2),javascript,bitwise-operators,bitmask,Javascript,Bitwise Operators,Bitmask,在javascript中,您可以设置和清除单个位值,而无需使用Number(n).toString(2) const setBit=(num,position)=>{ 设掩码=1{ 让mask=~(1取决于结果应该是什么。布尔返回是否足以检查指定位置的位是否已设置。或者输出是否为整数 const getBit=(num,position)=>{ 返回(数值和(2**位置))>0; } 控制台信息(“数字”,2,“在位”,1,getBit(2,1)) console.info(“数字”,2,“在

在javascript中,您可以设置和清除单个位值,而无需使用
Number(n).toString(2)

const setBit=(num,position)=>{
设掩码=1{

让mask=~(1取决于结果应该是什么。布尔返回是否足以检查指定位置的位是否已设置。或者输出是否为整数

const getBit=(num,position)=>{
返回(数值和(2**位置))>0;
}
控制台信息(“数字”,2,“在位”,1,getBit(2,1))
console.info(“数字”,2,“在位”,0,getBit(2,0))
const getBit=(num,position)=>num>>position&1;

log(getBit(0b1010,1))
这看起来很棒!看起来您甚至可以调整它以返回int:
const getBit=(num,position)=>+!!(num&(2**position))
对于按位操作,它更简洁。
const setBit = (num, position) => {
  let mask = 1 << position
  return num |= mask
}

const clearBit = (num, position) => {
  let mask = ~(1 << position)
  return num &= mask
}