Как правило, битовое представление числа используется для:
Упаковки нескольких битововых значений («флагов») в одно значение. Это экономит память и позволяет проверять наличие комбинации флагов одним оператором &. Кроме того, такое упакованное значение будет для функции всего одним параметром, это тоже удобно.
Округления числа: (12.34^0) = 12.
Проверки на равенство -1: if (~n) { n не -1 }.
Важность: 5
Почему побитовые операции в примерах ниже не меняют число? Что они делают внутри?
alert( 123 ^ 0 ); // 123
alert( 0 ^ 123 ); // 123
alert( ~~123 ); // 123
Решение
[Открыть задачу в новом окне]
Важность: 3
Напишите функцию isInteger(num), которая возвращает true, если num — целое число, иначе false.
Например:
alert( isInteger(1) ); // true
alert( isInteger(1.5) ); // false
alert( isInteger(-0.5) ); // false
Решение
[Открыть задачу в новом окне]
Важность: 5
Верно ли, что для любых a и b выполняются равенства ниже?
a ^ b == b ^ a
a & b == b & a
a | b == b | a
Иными словами, при перемене мест — всегда ли результат остаётся тем же?