Loogiset operaatiot biteittäin
C-kielessä on käytössä myös loogiset operaatiot, joilla voidaan tehdä Boolen algebraalisia muunnoksia lukujen kesken:
operaattori | merkitys (suluissa englanniksi) |
---|---|
| JA , lukujen bittejä vertaillen (AND) |
| TAI , lukujen bittejä vertaillen (OR) |
^ | POISSULKEVA TAI (XOR) |
~ {~} | negaatio eli kääntö (bitwise complement) |
- Kaikki yllä olevat operaatiot tehdään lukujen samoissa kohdissa olevia bittejä vertaillen.
Esimerkkejä
Loogisilla operaatioilla saadaan informaatio siitä onko muuttuja nolla tai ei, lisäksi voidaan testata muuttujien yhtä- ja erisuuruutta.1)
&
-
...
- operaatio
Code Block char Eka=5,Toka=2,Vastaus=0;
...
Debuggeri näyttäisi vastauksen: Vastaus = 0//Eka = 0000 0101b Toka= 0000 0010b Vastaus = Eka & Toka; //Vastaus = 0000 0000
...
|
-operaatio
Debuggeri näyttäisi vastauksen: Vastaus = 7Code Block char Eka=5,Toka=2,Vastaus=0; //Eka = 0000 0101b Toka= 0000 0010b Vastaus = Eka | Toka; // Vastaus = 0000 0111B
- ^ -operaatio
Debuggeri näyttäisi vastauksen: Vastaus = 7Code Block char Eka=5,Toka=2,Vastaus=0;//Eka = 0000 0101b Toka= 0000 0010b Vastaus = Eka ^ Toka;// Vastaus = 0000 0111B
Code Block char Eka=7,Toka=2,Vastaus=
...
Debuggeri näyttäisi vastauksen: Vastaus =0;//Eka = 0000 0111b Toka= 0000 0010b Vastaus = Eka ^ Toka;// Vastaus = 0000 0101B
...
- 5
...
- ~ -
...
- operaatio
Code Block char Eka=5,Vastaus=0;
...
Vastaus =
...
Debuggeri näyttäisi vastauksen: Vastaus = 250 (tai -6)~Eka;
Sama toisella tapaa esitettynä Loogiset operaatiot kahdeksanbittisillä luvuilla