Я пытаюсь оценить, являются ли числа внутри массива четными или нечетными, используя побитовый оператор &.
Это мой код:
arr = [1, 2, 4, 6, 9, 11, 18, 361, 5622, 5623]
arr.forEach(function (el) {
if (parseInt(el.toString(2)) & 1 === 0) {
console.log(`${el} in binary is ${el.toString(2)} and it is an EVEN number`);
} else {
console.log(`${el} in binary is ${el.toString(2)} and it is an ODD number`);
}
});
Принимая каждый элемент по отдельности, каждый возвращает 0 или 1, что позволяет оценить, является ли число четным или нечетным, но в этом случае все они возвращают числа ODD. , Это то, что я получаю в результате:
1 в двоичном виде равен 1, и это номер ODD
2 в двоичном виде равен 10, и это номер ODD
4 в двоичный файл равен 100, и это номер ODD
и т. д. ...
Где я ошибся?