Побитовые операторы — это фундаментальные инструменты программирования, позволяющие эффективно манипулировать отдельными битами двоичных чисел. Они используются для выполнения низкоуровневых операций над данными, таких как установка, очистка или переключение определенных битов, а также для извлечения или объединения информации из нескольких битов. В этой статье мы рассмотрим различные типы побитовых операторов и приведем примеры кода, демонстрирующие их использование в разных языках программирования.
-
Оператор И (&):
Побитовый оператор И сравнивает соответствующие биты двух чисел и создает новое число, в котором каждый бит равен 1, только если оба соответствующих бита равны 1. В противном случае, бит установлен в 0.
Пример:a = 5 # binary: 0101 b = 3 # binary: 0011 result = a & b # binary: 0001 (decimal: 1)
-
Оператор ИЛИ (|):
Побитовый оператор ИЛИ сравнивает соответствующие биты двух чисел и создает новое число, в котором каждый бит равен 1, если хотя бы один из соответствующих битов равен 1.
Пример:a = 5 # binary: 0101 b = 3 # binary: 0011 result = a | b # binary: 0111 (decimal: 7)
-
Оператор XOR (^):
Побитовый оператор XOR сравнивает соответствующие биты двух чисел и создает новое число, в котором каждый бит устанавливается в 1, если соответствующие биты различны. Если биты одинаковы, бит результата устанавливается в 0.
Пример:a = 5 # binary: 0101 b = 3 # binary: 0011 result = a ^ b # binary: 0110 (decimal: 6)
-
Оператор NOT (~):
Побитовый оператор NOT инвертирует все биты числа, превращая 0 в 1, а 1 в 0. Он работает с одним операндом.
Пример:a = 5 # binary: 0101 result = ~a # binary: 1010 (decimal: -6)
-
Оператор сдвига влево (<<):
Оператор сдвига влево сдвигает биты числа влево на указанное количество позиций. Сдвинутые биты заполняются нулями.
Пример:a = 5 # binary: 0101 result = a << 2 # binary: 010100 (decimal: 20)
-
Оператор правого сдвига (>>):
Оператор правого сдвига сдвигает биты числа вправо на указанное количество позиций. Сдвинутые биты заполняются нулями для беззнаковых чисел или знаковыми битами для чисел со знаком.
Пример:a = 20 # binary: 010100 result = a >> 2 # binary: 000101 (decimal: 5)
Побитовые операторы предоставляют мощные инструменты для управления отдельными битами двоичных чисел. Понимая и эффективно используя эти операторы, вы можете оптимизировать свой код и эффективно выполнять различные низкоуровневые операции. В этой статье мы рассмотрели операторы AND, OR, XOR, NOT, сдвиг влево и вправо, а также примеры кода на Python. Включение методов побитовой манипуляции в ваш набор инструментов программирования повысит вашу способность эффективно решать сложные проблемы.