Используя mask , мы можем указать, какой бит мы хотим изменить.
let mask = 1 << 3;
означает, что мы хотим изменить бит в позиции 4 справа 0000 0 000.
Исходя из этого, мы можем уточнить вашу функцию inUse (), чтобы она возвращала бит в определенной позиции:
function inUse(sideIndex) {
let mask = 1 << sideIndex;
if ((sidesInUse & mask) != 0) {
return true;
} else {
return false;
}
}
Использование |(ИЛИ) оператор, мы можем установить бит в 1, а комбинация оператора ~ (НЕ) и & (И) дает нам возможность окончательно установить бит в 0.
function use(sideIndex) {
let mask = 1 << sideIndex;
if (!(inUse(sideIndex))) {
sidesInUse |= mask;
sidesNotInUse &= ~mask;
}
}
function unuse(sideIndex) {
let mask = 1 << sideIndex;
if (inUse(sideIndex)) {
sidesInUse &= ~mask;
sidesNotInUse |= mask;
}
}
Кстати, вам не нужны два двоичных числа, достаточно одного, чтобы знать, используется ли сторона или нет.