Operacja
|
Zapis i
wykonanie
|
Ustaw
jeden bit
|
in bajt 11110000
bajt |=(1<<0)
out bajt 11110001
|
Ustaw
jeden bit i kasuj resztę
|
in bajt 11110000
bajt =(1<<0)
out bajt 00000001
|
Ustaw
kilku bitów jednocześnie
|
in bajt 10000001
bajt |=(1<<6 | 1<<5 | 3<<1)
out bajt 11100111
|
Ustaw
kilku bitów jednocześnie
|
in bajt 11000000
bajt |=(7<<0)
out bajt 11000111
|
Kasowanie
jednego bitu
|
in bajt 11110000
bajt &=~(1<<6)
out bajt 10110000
|
Kasowanie
jednego bitu i ustawienie reszty na 1
|
in bajt 11110000
bajt =~(1<<6)
out bajt 10111111
|
Kasowanie
kilku bitów w bajcie
|
in bajt 11110000
bajt &=~(1<<6 | 1<<5)
out bajt 10010000
|
Kasowanie
kilku bitów w bajcie inny przykład
|
in bajt 11111111
bajt &=~(1<<6 | 1<<5 | 3<<1)
out bajt 10011001
|
Operacje
warunkowe, efekt operacji
|
in bajt 11000000
(!(bajt & (1<<7)))
out bajt 00000000
|
|
in bajt 11000000
((bajt & (1<<7)))
out bajt 10000000
|
|
in bajt 11000011
(bajt & (1<<1))
out bajt 00000010
|
if ((bajt
& (1 << 1)) == 0)
|
in bajt 11000011
out
false
in bajt
11000001
out
true
|
Negacja
bitów
|
in bajt 11000011
bajt^(1<<1 | 1<<2)
out bajt 11000101
|