Ich habe mal eine grundsätzliche Frage, zur Schreibweise einer
Bitverschiebung. Wenn ich
habe, und in C schreibe
dann bekomme ich wert = 0b0010. Nennt sich Bitverschiebung. Klar soweit.
Jetzt gibt es aber die Verschiebung UND Zuweisung, die folgendermaßen
aussieht:
Wenn ich zuvor 0b0001 hatte, was steht jetzt in wert??? Es ist ja so,
dass das die Kurzschreibweise für
1 | wert = wert << 1; //(III.) = (II.) [ != (I.) ???]
|
ist. Ich sehe da nun eigentlich nur eine doppelt gemoppelte Asuführung
von (I.): die Bits werden um eine Stelle verschoben, und das Ergebnis
des Werts wird nocheinmal in die selbe Variable geschrieben, wobei ich
keine weitere Verschiebung vornehme. Wenn ich aber (II.) anwende, ist
das Ergebnis ein anderes als (I.). Wie wird hier noch was verschoben?
Ich habe schon viele Grundlagen und Skripte durchsucht, und bisher habe
ich nicht sehen können, dass es eine Unterscheidung gibt. Bzw. sprechen
die einen von "<< 1 ist Verschiebung um eins nach links" und die anderen
"<<= 1 ist Verschiebung um eins nach links", was zwar keinen Unterschied
impliziert, aber offensichtlich doch nicht stimmt. Wo liegt des Pudels
Kern??