Вы можете преобразовать целые числа в двоичные строки, например:
let n = 11
let bin = n.toString(2)
console.log(bin)
При этом вам просто нужно получить правильный символ.Предполагая, что вы считаете справа (и начинаете с 1), вы можете сделать:
function valueAtBit(num, bit) {
n = num.toString(2)
return bit > n.length
? 0
: n.toString(2)[n.length - bit]
}
console.log(valueAtBit(11, 1))
console.log(valueAtBit(11, 2))
console.log(valueAtBit(11, 3))
console.log(valueAtBit(11, 4))
console.log(valueAtBit(11, 5)) // all zero after this
Другой вариант, если вы хотите сделать математику, это разделить на число на 2 ** бит и взять мод:
function valueAtBit(num, bit) {
return Math.floor(num / (2 ** bit)) % 2
}
let num = 523
console.log("number in binary:", num.toString(2))
for (let i = 0; i < 10; i++){
console.log("bit: ", i, valueAtBit(num, i))
}