Побитовые операторы
Побитовые операторы в JavaScript — это операторы, которые выполняют операции над двоичными числами. Эти операторы работают над каждым битом (0 или 1) двоичного числа и возвращают результат в виде нового двоичного числа.
В JavaScript доступны следующие побитовые операторы:
- Побитовый унарный оператор NOT (~) Он инвертирует все биты в числе (заменяет каждый 0 на 1 и каждый 1 на 0).
- Побитовый AND (&) Он выполняет логическое AND между каждым битом двух чисел. В результате получается новое число, в котором каждый бит установлен только если оба соответствующих бита были установлены.
- Побитовый OR (|) Он выполняет логическое OR между каждым битом двух чисел. В результате получается новое число, в котором каждый бит установлен, если он был установлен хотя бы в одном из двух чисел.
- Побитовый XOR (^) Он выполняет логическое XOR между каждым битом двух чисел. В результате получается новое число, в котором каждый бит установлен только если он был установлен только в одном из двух чисел.
- Побитовый сдвиг влево (<<) Он сдвигает все биты числа влево на указанное количество позиций. При этом добавляются нули в конец.
- Побитовый сдвиг вправо с заполнением нулями (>>) Он сдвигает все биты числа вправо на указанное количество позиций. При этом добавляются нули в начало.
- Побитовый сдвиг вправо с заполнением единицами (>>>) Он сдвигает все биты числа вправо на указанное количество позиций. При этом добавляются единицы в начало.
Например, рассмотрим следующий пример использования побитовых операторов:
const x = 5; // 0101 в двоичной системе
const y = 3; // 0011 в двоичной системе
const notX = ~x; // -6 (преобразовано в десятичное число)
const andResult = x & y; // 1 (001 в двоичной системе)
const orResult = x | y; // 7 (0111 в двоичной системе)
const xorResult = x ^ y; // 6 (0110 в двоичной системе)
const leftShiftResult = x << 1; // 10 (1010 в двоичной системе)
const right