Operator to konstrukcja jedno- lub wieloargumentowa zwracająca wartość.
Operatory bitowe w języku C w przeciwieństwie do operatorów logicznych działają na kolejnych
bitach argumentu(ów) niezależnie.
Operatory bitowe w języku C:
~ - negacja, np. ~1010 = 0101;
| - alternatywa (or): zwraca 1 jeżeli co najmniej jeden argument jest 1, np. dla wywołania x|y tablica zależności będzie miała następującą postać:
x y x|y
0 0 0
0 1 1
1 0 1
1 1 1
& - koniunkcja (and): zwraca 1 jeżeli wszystkie argumenty są 1, np. dla wywołania x&y tablica zależności będzie miała następującą postać:
x y x&y
0 0 0
0 1 0
1 0 0
1 1 1
^ - bitowa różnica symetryczna (xor – exclusive or): zwraca 1 gdy jeden z argumentów (i tylko jeden) jest 1, np. dla wywołania x^y tablica zależności będzie miała następującą postać:
x y x^y
0 0 0
0 1 1
1 0 1
1 1 0
Przesunięcia bitowe:
<< - przesunięcie bitowe w lewo, polecenie x<<y przesuwa każdy bit zmiennej x o y pozycji w kierunku bitu bardziej znaczącego. Najmniej znaczące miejsca wypełniane są zerami. Operacja przesunięcia bitowego w lewo jest tożsama z pomnożeniem zmiennej x przez liczbę 2^y (2 do potęgi y).
>> - przesunięcie bitowe w prawo, polecenie x>>y przesuwa każdy bit zmiennej x o y pozycji w kierunku bitu mniej znaczącego. Operacja przesunięcia bitowego w prawo jest tożsama z podzieleniem bez reszty zmiennej x przez liczbę 2^y (2 do potęgi y).
>>> - działa podobnie jak operator >>, dodatkowo dodaje zera z lewej strony.
Bibliografia
Strony internetowe:
http://www.guidecpp.x12.pl/cplus-operators-bits.php
http://republika.onet.pl/13965,15262,11,03-03,kursy.html
http://developer.mozilla.org/pl/Przewodnik_po_j%C4%99zyku_JavaScript_1.5/Operatory/Operatory_bitowe