Operatory bitowe

Operatory bitowe są używane do przeprowadzania operacji bitowych. Operacje bitowe są przeprowadzane na bitowych reprezentacjach wyrażeń użytych w tych operacjach.

Bitowa negacja (NOT)

~

wynik = ~wyrazenie;

0101wyrazenie
---- 
1010wynik

Wszystkie 1 zostają zamienione na 0. Wszystkie 0 zostają zamienione na 1.


Bitowa koniunkcja (AND)

&

wynik = wyrazenie1 & wyrazenie2;

1100wyrazenie1
0101wyrazenie2
---- 
0100wynik

Tylko dwie 1 dają 1, w przeciwnym wypadku jest 0.


Bitowa alternatywa (OR)

|

wynik = wyrazenie1 | wyrazenie2;

1100wyrazenie1
0101wyrazenie2
---- 
1101wynik

1 w jednym lub obu wyrażeniach dają 1, dwa 0 dają 0.


Exclusive OR (XOR)

^

wynik = wyrazenie1 ^ wyrazenie2;

1100wyrazenie1
0101wyrazenie2
---- 
1001wynik

Gdy w jednym i tylko w jednym wyrażeniu jest 1, rezultatem jest 1. W przeciwnym wypadku jest 0.


Przesunięcie bitowe w lewo

<< 

wynik = wyrazenie1 << wyrazenie2;

Operator przesuwa bity w lewo w wyrazenie1 o tyle miejsc ile ma wyrazenie2.

Na przykład:

rezultat = 12 << 2;

rezultat wynosi 48 ponieważ

0000110012 w reprezentacji bitowej
-------- 
00110000rezultat 48 w reprezentacji bitowej

Przesunięcie bitowe w prawo

>> 

wynik = wyrazenie1 >> wyrazenie2;

Operator przesuwa bity w prawo w wyrazenie1, nie zmieniając znaku, o tyle miejsc ile ma wyrazenie2.

Na przykład:

rezultat = -12 >> 2;

rezultat wynosi -3 ponieważ

11110100-12 w reprezentacji bitowej
-------- 
11111101rezultat -3 w reprezentacji bitowej

Przesunięcie bitowe w prawo (bezznakowe)

>>> 

wynik = wyrazenie1 >> wyrazenie2;

Operator przesuwa bity w prawo w wyrazenie1 (uzupełniając lewą stronę zerami) o tyle miejsc ile ma wyrazenie2.

Na przykład:

rezultat = -12 >>> 2;

rezultat wynosi 1073741821 ponieważ

11111111 11111111 11111111 11110100-12 w reprezentacji bitowej
-------- 
00111111 11111111 11111111 11111101rezultat 1073741821 w reprezentacji bitowej