W C++ dostępnych jest różnych operatorów. Każdy Operator ma określony symbol i operację do wykonania. W C++ mamy różne kategorie operatorów.
- Operatory arytmetyczne
- Operatorzy relacyjni
- Operatory logiczne
- Operatory przypisania
- Operatory bitowe
W tym artykule dowiemy się o operatorach bitowych w C++.
Operatory bitowe C++
Operatory bitowe to operatory używane do wykonywania operacji na poziomie bitu na liczbach całkowitych. Podczas wykonywania tej operacji liczby całkowite traktowane są jako ciągi cyfr binarnych. W C++ mamy różne typy operatorów bitowych.
- Bitowe ORAZ (&)
- Bitowe LUB (|)
- Bitowy XOR (^)
- Bitowe NIE (~)
- Lewy Shift (<<)
- Prawy Shift (>>)
1. Bitowe ORAZ (&)
Bitowa operacja AND jest wykonywana pomiędzy dwiema liczbami całkowitymi. Porównuje każdy bit na tej samej pozycji, a bit wyniku zostanie ustawiony (1) tylko i tylko wtedy, gdy oba odpowiednie bity są ustawione (1). Symbolem używanym do wykonywania operacji bitowych AND jest &.
Przykład : wykonamy operację bitową pomiędzy dwiema liczbami 7 i 4. W systemie binarnym 7 będzie reprezentowane jako 111, a 4 będzie reprezentowane jako 100.
1 1 1 & 1 0 0 ------ 1 0 0>
jak widać w powyższym przykładzie, tylko te bity są bitami ustawionymi, których odpowiednie bity (oba) są ustawione. Dlatego 7 i 4 = 4
r w programowaniu c
2. Bitowy LUB (|)
Jeśli operacja bitowa OR zostanie wykonana pomiędzy dwiema liczbami całkowitymi, porówna każdy bit na tej samej pozycji i bit wyniku zostanie ustawiony (1), jeśli ustawiony zostanie którykolwiek z odpowiednich bitów (1). Symbolem używanym do wykonywania operacji bitowych OR jest |.
Przykład: wykonamy bitową operację LUB pomiędzy dwiema liczbami 7 i 4. w systemie binarnym 7 będzie reprezentowane jako 111, a 4 będzie reprezentowane jako 100.
1 1 1 | 1 0 0 ------ 1 1 1>
jak widać w powyższym przykładzie, te bity są bitami ustawionymi, dla których ustawiony jest co najmniej jeden odpowiedni bit. Zatem 7|4=7.
3. Bitowy XOR (^)
Jeśli bitowa operacja XOR zostanie wykonana pomiędzy dwiema liczbami całkowitymi, porówna każdy bit na tej samej pozycji, a bit wyniku zostanie ustawiony (1), jeśli którykolwiek z odpowiednich bitów się różni, tj. jeden z nich powinien wynosić 1, a drugi powinien wynosić zero. Symbolem używanym do wykonywania bitowych operacji XOR jest ^.
Przykład: wykonamy bitową operację XOR pomiędzy dwiema liczbami 7 i 4. w systemie binarnym 7 będzie reprezentowane jako 111, a 4 będzie reprezentowane jako 100.
1 1 1 ^ 1 0 0 ------ 0 1 1>
jak widać w powyższym przykładzie, te bity są bitami ustawionymi, których odpowiadające im bity są różne. Zatem 7^4=3.
algorytmy sortowania sortowanie przez scalanie
4.Bitowo NIE (~)
Operacja Bitowe NIE jest wykonywana na pojedynczej liczbie. Zmienia bieżący bit na jego uzupełnienie, tzn. jeśli bieżący bit ma wartość 0, to w rezultacie będzie to 1, a jeśli bieżący bit ma wartość 1, to stanie się 0. Jest to oznaczone symbolem ~.
Przykład: Wykonamy bitową operację NOT na liczbie 4. Liczba 4 jest reprezentowana jako 100 w systemie binarnym.
~ 1 0 0 ------ 0 1 1>
Jak widać w rezultacie, bity, których wartość początkowa wynosiła 1, dają w wyniku 0 i odwrotnie. Dlatego bitowe NOT liczby 4 będzie wynosić 3.
jak duży jest ekran mojego monitora
5. Lewy Shift (<<)
Operator ten przesuwa bity liczby całkowitej na lewą stronę o określoną liczbę (jak wspomniano). Ta operacja przesunięcia w lewo jest równoważna pomnożeniu liczby całkowitej przez liczbę przesuniętych pozycji o potęgę 2. Symbol używany do reprezentowania operatora przesunięcia w lewo to <<.
Przykład: Załóżmy, że mamy liczbę całkowitą 5 i przesuniemy jej bity w lewo o 2 pozycje. Operacja będzie reprezentowana jako x << 2.
Liczba 5 jest reprezentowana w systemie binarnym jako 101. Dodamy kilka zer na początku, aby przesunąć bity w lewo. Dlatego będzie to reprezentowane jako 00000101. Teraz przesuniemy wszystkie bity o dwie pozycje w lewo i wypełnimy puste pozycje wartością 0. Dlatego stanie się 00010100, czyli 20. Jak wspomniano wcześniej, przesunięcie liczby w lewo o dwa bity oznacza pomnożenie jej przez 2 podniesione do 2, czyli 4. 5*4 = 20 pokazuje powyższe stwierdzenie.
6. Prawy Shift (>>)
Operator ten przesuwa bity liczby całkowitej na prawą stronę o określoną liczbę (jak wspomniano). Ta operacja przesunięcia w prawo jest równoważna podzieleniu liczby całkowitej przez liczbę przesuniętych pozycji o potęgę 2. Symbol używany do reprezentowania operatora lewego przesunięcia to>>.
stół lateksowy
Przykład: Załóżmy, że mamy liczbę całkowitą 16 i przesuniemy jej bity w prawo o 2 pozycje. Operacja będzie reprezentowana jako x>> 2.
Liczba 16 jest reprezentowana w systemie binarnym jako 10000. Dodamy kilka zer na początku, aby przesunąć bity w prawo. Dlatego będzie to reprezentowane jako 00010000. Teraz przesuniemy wszystkie bity o dwie pozycje w prawo i wypełnimy puste pozycje wartością 0. Dlatego stanie się 00000100, czyli 4. Jak wspomniano wcześniej, przesunięcie liczby w prawo o dwa bity oznacza podzielenie jej przez 2 podniesione do 2, czyli 4. 16*4 = 4 pokazuje powyższe stwierdzenie.
Operatory bitowe programu C++
Poniżej realizacja tematu:
C++ // C++ Program to demonstrate // Bitwise Operator #include using namespace std; // Main function int main() b; // Bitwise XOR int bitwise_xor = a ^ b; // Bitwise NOT int bitwise_not = ~a; // Bitwise Left Shift int left_shift = a << 2; // Bitwise Right Shift int right_shift = a>> 1; // Drukowanie wyników // Operatory bitowe cout<< 'AND: ' << bitwise_and << endl; cout << 'OR: ' << bitwise_or << endl; cout << 'XOR: ' << bitwise_xor << endl; cout << 'NOT a: ' << bitwise_not << endl; cout << 'Left Shift: ' << left_shift << endl; cout << 'Right Shift: ' << right_shift << endl; return 0;>
Wyjście:
AND: 1 OR: 7 XOR: 6 NOT a: -6 Left Shift: 20 Right Shift: 2>
Wniosek
Podsumowując, operatory bitowe służą do wykonywania operacji na poziomie binarnym (bitowym). W C++ mamy różne rodzaje operatorów bitowych, takie jak AND, OR, XOR, NOT, przesunięcie w lewo i przesunięcie w prawo. Dzięki tym operacjom można bardzo precyzyjnie manipulować pojedynczymi bitami, co jest niezbędne w przetwarzaniu danych na niskim poziomie.