Bug-Betriebssystem bei Bitoperation ?! Kategorie: Programmierung (von eagle1311 - 28.02.2006 10:47) | |
| |
Hallo zusammen, handelt es sich nachfolgend um ein Bug im Betriebssystem oder lediglich um ein Verständnisproblem meinerseits ??? Bei den beiden unten aufgeführten Programmzeilen ergeben sich unterschiedliche Ergebnisse. Meine Frage: Was ist dabei der Hintergrund für die unterschiedl. Ergebnisse ??? byte X; X=(1 shl 2); X=!X; Hierbei wird nacheinander zunächst die "1" um zwei Stellen nach links verschoben und anschlie�end die Byte-Variabel negiert. Als Ergebnis wird "X" zu "0b11111011". OK, kann ich nachvollziehen und stellt für mich das erwartete Ergebnis dar. Fa�t man die beiden Anweisungen in einer Zeile zusammen: byte X; X=!(1 shl 2); erscheint als Ergebnis für "X" "0b00000000". Durch die Klammersetzung sollte zunächst die Schiebeoperation und anschlie�end die Negierung durchgeführt werden. Theorie und Praxis klaffen hier, für mich nicht nachvollziehbar, auseinander. WARUM ? Ich hoffe, die Frage ist nicht zu trivial. Vielen Dank für die Unterstützung. Dirk | |
Antwort schreiben Antworten: |