[C/C++] Brauche Erklärung zur Ausgabe/Manipulation von Bits innerhalb eines Bytes

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von myth2806, 31. Juli 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 31. Juli 2007
    Brauche Erklärung zur Ausgabe/Manipulation von Bits innerhalb eines Bytes

    Hey leutz,

    ichg würde gerne einzelne Bits in Bytes ausgeben lassen bzw bearbeiten. Ich hab dazu diese Seite über google gefunden aber daraus werde ich nicht so ganz schlau.

    Danke schonmal

    greez myth
     
  2. 31. Juli 2007
    AW: Brauche Erklärung zur Ausgabe/Manipulation von Bits innerhalb eines Bytes

    Code:
    #include <stdio.h>
    
    int main( void )
    {
     char iChar = 'a';
    
     printf( "iChar = %c / %d\n", iChar, iChar );
    
     iChar |= 2<<0;
    
     printf( "iChar = %c / %d\n", iChar, iChar );
    
     getchar();
    
     return 0;
    }
    Verändert den ersten Bit, und zwar wird es um 2 Werte erhöht.

    Ausgabe:
    Wie in deinem Thread auf c-plusplus.de angegeben ist es ratsam ersteinmal den Bit zu löschen und dann wiedermals mit einem Wert zu versehen.
     
  3. 31. Juli 2007
    AW: Brauche Erklärung zur Ausgabe/Manipulation von Bits innerhalb eines Bytes

    Hallo,
    du solltest dir mal die ganzen binären Operatoren anschauen. Die wichtigsten sind & (AND), | (OR) und ^(XOR).

    Hier mal nen Schnellüberblick:
    Bits werden von rechts nach links beginnent bei 0 nummeriert

    & (AND):
    1 1 -> 1
    1 0 -> 0
    0 1 -> 0
    0 0 -> 0

    | (OR):
    1 1 -> 1
    1 0 -> 1
    0 1 -> 1
    0 0 -> 0

    ^ (XOR):
    1 1 -> 0
    1 0 -> 1
    0 1 -> 1
    0 0 -> 0

    Testen ob ein Bit gesetzt ist:
    Mit dem &-Operator kann man testen ob ein Bit gesetzt ist.
    Bsp (es wird das 2. Bit getestet):
    PHP:
    if ( 52  & ( <<  2 )) {...} else {...}
    Bits setzen:
    Bits kann man mit dem |-Operator setzen.
    Bsp (es wird das 3. Bit gesetzt):
    PHP:
    int x  | ( <<  3 );    // x = 8 (binär: 1000)
    Bits löschen:
    Bits kann man mit dem ^-Operator löschen. Vorher muss man aber mit |-Operator sichergehen, dass das Bit auch gesetzt ist.
    Bsp (es wird das 3. Bit gelösch):
    PHP:
    int x  = | ( 1 << 3 );    // x = 8 (binär: 1000)
    ^=  1 << 3 ;           // x = 0^^
    Ich hoffe das hilft dir weiter...

    mfg r90
     
  4. 1. August 2007
    AW: Brauche Erklärung zur Ausgabe/Manipulation von Bits innerhalb eines Bytes

    danke an euch beide
    ich hab mir dazu nochmal diesen artikel angeschaut und nun glaube ich es begriffen zu haben XD
    bw's habt ihr

    greez myth

    //closed
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.