Kerschtl Geschrieben 10. April 2002 Geschrieben 10. April 2002 Hallo! Wir schreiben demnächst eine große Arbeit über C-Programmierung. Irgendwie ist das Thema mit den Bitorientierten Operatoren an mir vorbeigesaust. Kann mir jemand Aufzeichnungen oder Hilfe zu diesem Thema bieten? Würd mich freuen Zitieren
Orffi Geschrieben 10. April 2002 Geschrieben 10. April 2002 Es gibt folgende Bit-Operatoren: & (und), | (oder), ^ (exclusives oder), ~ (komplementär), << (bitshift nach links), >> (bitshift nach rechts) char byte = ~0; ergibt -1, da alle bits umgedreht werden, aus einer 1 wird eine 0 und aus einer 0 wird eine 1. Da wir uns im 2er Komplementsystem befinden, wird die -1 mit lauter einsen dargestellt. byte = 1; byte <<= 1; alle bits werden um eins nach links verschoben. In diesem Fall nur sichtbar die 1. Aber es werden auch die Nullen verschoben. Die letzte Null fällt hinten raus. Vorne wird eine Null nachgeschoben. Es wird aber immer eine Null nachgeschoben, selbst wenn hinten eine 1 wegfällt. (Das Ergebnis ist byte ==2.) byte1 = 1; byte2 = 2; byte7 = byte1 & byte2; byte == 0, da nur an den Stellen eine 1 gesetzt wird, wo in beiden Variablen eine 1 steht. Also an Stelle x muß in byte1 UND in byte2 eine 1 stehen. Diesen Fall haben wir aber nicht. byte1 = 1; byte2 = 2; byte7 = byte1 | byte2; byte == 3, da eine 1 gesetzt wird wenn an Stelle x in byte1 ODER in byte2 eine 1 steht. byte1 = 1; byte2 = 3; byte = byte1 ^ byte2; byte == 2, da beim XOR eine 1 gesetzt wird, wenn entweder in byte1 oder in byte2 eine 1 steht. Wenn aber an beiden Stellen eine 1 steht, wird eine Null geschrieben. In diesem Fall steht an erster Stelle beides Mal eine 0. HTH Jan Zitieren
Kerschtl Geschrieben 10. April 2002 Autor Geschrieben 10. April 2002 Vielen Dank, jetzt weiß ich wieder bescheid. Mein Hirn war wohl etwas umnachtet. Ist eigentlich ein einfaches Thema. Naj, dann drück mir mal die Daumen, dass ich die Arbeit gut meister. MfG Kerschtl Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.