You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

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 (AND)

|

TAI (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
    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
  2. | -operaatio
    char Eka=5,Toka=2,Vastaus=0; //Eka = 0000 0101b Toka= 0000 0010b
    Vastaus = Eka | Toka; //
    
    Debuggeri näyttäisi vastauksen: Vastaus = 7
  3. {^} -operaatio
    char Eka=5,Toka=2,Vastaus=0;
    Vastaus = Eka ^ Toka;
    
    Debuggeri näyttäisi vastauksen: Vastaus = 7
  4. {~} -operaatio
    char Eka=5,Vastaus=0;
    Vastaus = ~Eka;
    
    Debuggeri näyttäisi vastauksen: Vastaus = 250 (tai -6)
  • No labels
You must log in to comment.