Поразрядные операции JavaScript

В JavaScript существуют четыре поразрядные операции, которые позволяют работать с числами на уровне их двоичного представления. Эти операции включают в себя побитовое И (&), побитовое ИЛИ (|), исключающее ИЛИ (^) и НЕ (~). Давайте рассмотрим каждую из них подробнее.

Побитовое И (&)
Эта операция выполняет логическое И над каждым битом двух чисел. Результатом будет число, в котором установлены только те биты, которые были установлены одновременно в обоих исходных числах.

Пример:

let a = 13; // Двоичное представление: 1101
let b = 9; // Двоичное представление: 1001
let result = a & b; // Двоичное представление результата: 1001
console.log(result); // Результат: 9

Побитовое ИЛИ (|)
Эта операция выполняет логическое ИЛИ над каждым битом двух чисел. Результатом будет число, в котором установлены все биты, которые были установлены хотя бы в одном из исходных чисел.

Пример:

let a = 13; // Двоичное представление: 1101
let b = 9; // Двоичное представление: 1001
let result = a | b; // Двоичное представление результата: 1101
console.log(result); // Результат: 13

Исключающее ИЛИ (^)
Эта операция выполняет логическую операцию XOR над каждым битом двух чисел. Результатом будет число, в котором установлены только те биты, которые отличаются между двумя исходными числами.

Пример:

let a = 13; // Двоичное представление: 1101
let b = 9; // Двоичное представление: 1001
let result = a ^ b; // Двоичное представление результата: 0100
console.log(result); // Результат: 4

Побитовое НЕ (~)
Эта операция инвертирует каждый бит числа. То есть, нули становятся единицами, а единицы — нулями.

Пример:

let a = 13; // Двоичное представление: 1101
let result = ~a; // Двоичное представление результата: 0010
console.log(result); // Результат: -14

Применение поразрядных операций
Эти операции широко применяются в различных задачах, связанных с работой с битами:

Маски и флаги: Установка, проверка и сброс определенных битов в числовом представлении.

let flags = 0b1010; // Флаги
let mask = 0b0010; // Маска для проверки второго бита

if ((flags & mask) !== 0) {
console.log(‘Второй бит установлен.’);
} else {
console.log(‘Второй бит сброшен.’);
}

Проверка четности: Проверка последнего бита числа на четность.

function isEven(n) {
return (n & 1) === 0;
}

console.log(isEven(4)); // true
console.log(isEven(5)); // false

Комбинации битов: Объединение или разделение различных частей числа.

let rgbColor = 0xFF6633; // Цвет в формате #FF6633
let red = (rgbColor >> 16) & 0xFF; // Красный компонент
let green = (rgbColor >> 8) & 0xFF; // Зеленый компонент
let blue = rgbColor & 0xFF; // Синий компонент
console.log(`Красный: ${red}, зеленый: ${green}, синий: ${blue}`);

Поразрядные операции являются мощным инструментом для работы с битами и часто используются в низкоуровневом программировании, обработке графики, шифровании и многих других областях.

Добавить комментарий

Войти с помощью: