Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

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)

  1. & -operaatio
    Code Block
    
    char Eka=5,Toka=2,Vastaus=0; //Eka = 0000 0101b Toka= 0000 0010b
    Vastaus = Eka & Toka; //Vastaus = 0000 0000
    
    Debuggeri näyttäisi vastauksen: Vastaus = 0

...

  1. | -operaatio
    Code Block
    
    char Eka=5,Toka=2,Vastaus=0; //Eka = 0000 0101b Toka= 0000 0010b
    Vastaus = Eka | Toka; // Vastaus = 0000 0111B
    
    Debuggeri näyttäisi vastauksen: Vastaus = 7
  2. ^ -operaatio
    Code Block
    
    char Eka=5,Toka=2,Vastaus=0;//Eka = 0000 0101b Toka= 0000 0010b
    Vastaus = Eka

...

  1.  ^ Toka;// Vastaus = 0000 0111B
    
    Debuggeri näyttäisi vastauksen: Vastaus = 7
    Code Block
    
    char Eka=7,Toka=2,Vastaus=0;//Eka = 0000 0111b Toka= 0000 0010b
    Vastaus = Eka ^ Toka;// Vastaus = 0000 0101B
    
    Debuggeri näyttäisi vastauksen: Vastaus =

...

  1. 5

...

  1. ~ -operaatio
    Code Block
    
    char Eka=5,Vastaus=0;
    Vastaus = 

...

  1. ~Eka;
    
    Debuggeri näyttäisi vastauksen: Vastaus = 250 (tai -6)

Sama toisella tapaa esitettynä Loogiset operaatiot kahdeksanbittisillä luvuilla