Operatory bitowe w C++
Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji
Operatory bitowe wykonują działania na pojedynczych bitach liczb całkowitych. W C++ stosuje się je głównie dla typów takich jak int, short, long, char oraz ich wersji bez znaku, np. unsigned int.
Najważniejsze operatory bitowe
|- bitowe lub, czyli OR&- bitowe i, czyli AND^- bitowe xor, czyli alternatywa wykluczająca~- negacja bitowa, czyli odwrócenie bitów<<- przesunięcie bitów w lewo>>- przesunięcie bitów w prawo
Operator | - bitowe lub
Operator | porównuje bity dwóch liczb. Wynikowy bit ma wartość 1, jeżeli przynajmniej jeden z porównywanych bitów ma wartość 1.
Przykład:
#include <iostream>
using namespace std;
int main() {
int a = 5; // binarnie: 0101
int b = 3; // binarnie: 0011
cout << (a | b); // wynik: 7, binarnie: 0111
return 0;
}
Działanie:
0101
0011
----
0111
Wynik to 7, ponieważ liczba binarna 0111 odpowiada liczbie dziesiętnej 7.
Różnica między | a ||
Nie należy mylić operatora | z operatorem ||.
|oznacza bitowe lub i działa na bitach liczb.||oznacza logiczne lub i działa na wartościach logicznych, np. w instrukcjach warunkowych.
Przykład logicznego lub:
if (wiek >= 18 || maZgode) {
cout << "Dostęp dozwolony";
}
Zastosowanie
Operatory bitowe są używane m.in. do:
- ustawiania i sprawdzania flag,
- pracy z maskami bitowymi,
- programowania niskopoziomowego,
- optymalizacji niektórych operacji arytmetycznych,
- obsługi rejestrów sprzętowych.
Na egzaminie warto zapamiętać: w C++ pojedynczy znak | oznacza bitowe lub, a podwójny znak || oznacza logiczne lub.