Veröffentlicht 10. April 200223 j 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
10. April 200223 j 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
10. April 200223 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.