Zurück zur vorherigen Seite    
 




 
   
  Bit-Manipulationen (Verwendung z. B. für Variablen)
 
   
 
Speziell für die ordinalen Datentypen (char, short, int, long in beiden Varianten signed oder
unsigned) existieren sechs Operatoren für sogenannte Bit-Manipulationen.

 

 
 
Operator Wertigkeit Bezeichnung / Erläuterung
& binär bitweise Und-Verknüpfung
| binär bitweise Oder-Verknüpfung
^ binär exclusive Oder-Verknüpfung (XOR)
<< binär Bit-Verschiebung nach links (shift left)
>> binär Bit-Verschiebung nach rechts (shift right)
~ unär bitweises Komplement

 
 
 
     
 
Ein kleines Beispiel hierzu:
                   
unsigned char a,b,c;                     /* Bitnummer: 7654  3210    */
a=0x11; /* = 17             Bitmuster: 0001  0001    */
b=0x0F; /* = 15 0000  1111    */
     
c=a & b;  /* c wird gesetzt auf: 0000  0001    */
c=a | b;   /* c wird gesetzt auf: 0001  1111    */
c=a ^ b;  /* c wird gesetzt auf: 0001  1110    */
c=a << 1;  /* c wird gesetzt auf: 0010  0010    */
c=b >> 2;  /* c wird gesetzt auf: 0000  0011    */
c=~a;  /* c wird gesetzt auf: 1110  1110    */



Quelle:

ANSI-C im Überblick
Peter Baeumle-Courth


C Tutorial (http://info.baeumle.com/ansic.html)

   
       
     
 

Beispiel 1 - bitweises Komplement (jedes Bit wird invertiert):
 
 
  #include <REG932.H>


void main( void )
{
    unsigned char ucAnzeige8bit = 0;              // Definition der Variablen ucAnzeige8bit, Initialisierung mit  0000 0000
                                                                      
    P0M1 = 0x00;                                              // Port 0 als quasi-bidirektional (alle 8 Pins)
    P0M2 = 0x00;

    P0 = ~ucAnzeige8bit;                                   // Zuweisung des Komplements von ucAnzeige8bit an Port 0,

                                                                        // statt  0000 0000 wird also 1111 1111 an Port 0 zugewiesen
                                                                        // auf dem LPC-Experimentierboard: alle LEDs der Balken-LED sind aus
}