Przejdź do głównej treści
  1. Strona główna
  2. Słownik
  3. INF.04
  4. Operatory bitowe w C++

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.