Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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: