Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > 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 ??? > > <code> > byte X; > > X=(1 shl 2); > X=!X; > </code> > > 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: > <code> > byte X; > > X=!(1 shl 2); > </code> > > 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