AUFGABEN

Fork of 5ABELI_BAJRAKTAREVIC by Riad_ Bajraktarevic

Bitoperationen in C

Table of Contents

    Bitoperationen in C

    //   &  |  ^  <<  >>
    
    // Logische Verknüpfungs-Operatoren
    // && || ! 
    
    a = 3; // dez  
    a = 0x3;
    a = 0xA;
    
    // Der Bitschiebe-Befehl in C/C++
    
    int  a;
    
    a = B#0001;  // in a steht Binär 0001
    
    a = a << 1;  // in a steht jetzt B#0010
    a = a << 1;  // in a steht jetzt B#0100
    
    a = a >> 2;  // in a steht jetzt B#0001
    a = a >> 1;  // in a steht jetzt B#0000
    
    
    // Bitwise OR
    B#1001 | B#0010 = B#1011       
    
    
    // Bits in einem Byte mit Bitwise-And abfragen
    
    B#1010 & B#0101 = B#0000
    
    B#1010 & B#1000 = B#1000
    
    // !!gezieltes!! abfragen ob ein Bit in einem Byte gesetzt ist
    
      2^3    2^2  2^1  2^0
    B#  0    0    0    0;
    
    int btn;
    
    if( btn & 0001 )  B#xxxx & B#0001
      printf("Bit0 ist gesetzt");
    
    if( btn & 2 ) B#xxxx & B#0010
      printf("Bit1 ist gesetzt");
    
    if( btn & 4 )
      printf("Bit2 ist gesetzt");
    
    if( btn & 8 )
      printf("Bit3 ist gesetzt");
    
    
    // Mit dem Bitwise-OR Bits in einem Byte setzen 
    // ohne die schon gesetzen Bits zu zerstören
    
    int leds;
    
    leds = B#0001; // Bit0 ist gesetzt
    
    leds = B#0010; // Bit1 ist gesetzt aber Bit0 ist leider wieder gelöscht
    
    // Die Lösung ist, daß man Bits dazuverodert
    leds = leds | B#0010; // leds ist jetzt B#0011;
    
    
    
    // Logische operatoren
    
    int a = 1;
    int b = 1;
    
    int c = ( a && b );
    
    int d = 5; // B#0101
    

    All wikipages