Bitwise: Understanding and Utilizing Bit Manipulation in Programming
Bitwise операции используются для манипуляции с битами в двоичном представлении чисел. В языках программирования такие операции работают на уровне отдельных битов числа. Каждый бит представляет собой либо 0, либо 1.
Примеры bitwise операций:
1. AND (и): операция побитового И между двумя числами. Возвращает 1, если оба бита равны 1, иначе возвращает 0.
int a = 5; // двоичное представление: 0000 0101
int b = 3; // двоичное представление: 0000 0011
int result = a & b; // побитовое И: 0000 0001
2. OR (или): операция побитового ИЛИ между двумя числами. Возвращает 1, если хотя бы один бит равен 1, иначе возвращает 0.
int a = 5; // двоичное представление: 0000 0101
int b = 3; // двоичное представление: 0000 0011
int result = a | b; // побитовое ИЛИ: 0000 0111
3. XOR (исключающее или): операция побитового исключающего ИЛИ между двумя числами. Возвращает 1, если только один бит равен 1, иначе возвращает 0.
int a = 5; // двоичное представление: 0000 0101
int b = 3; // двоичное представление: 0000 0011
int result = a ^ b; // побитовое исключающее ИЛИ: 0000 0110
4. NOT (не): операция побитового отрицания числа. Инвертирует все биты числа, то есть заменяет 0 на 1 и наоборот.
int a = 5; // двоичное представление: 0000 0101
int result = ~a; // побитовое отрицание: 1111 1010
5. Сдвиг вправо и влево: операции побитового сдвига вправо и влево. При сдвиге вправо биты числа сдвигаются вправо на указанное количество позиций. При сдвиге влево биты числа сдвигаются влево на указанное количество позиций. При сдвиге вправо старшие биты заполняются нулями, а при сдвиге влево младшие биты выпадают.
int a = 5; // двоичное представление: 0000 0101
int result = a << 2; // сдвиг влево на 2 позиции: 0001 0100
int result = a >> 1; // сдвиг вправо на 1 позицию: 0000 0010
Bitwise операции часто используются для оптимизации кода, манипуляций с флагами и работой с двоичными данными. Важно помнить о возможности изменить значение бита в числе при использовании bitwise операций.