f.b=-128 >> 1 ; Der Wert von f ergibt -64. -128=%10000000, -64=%11000000. Beim Verschieben nach Rechts bleibt das Vorzeichen ("most significant bit") gleich.
Andre wrote: ↑Sat Mar 11, 2023 9:26 pm
Sorry, I don't see, what should be changed in the (german) docs. Any concrete suggestions?
German is not my native language but I would suggest for the description of the '>>' operator in the German text :
Bitweise Verschiebung nach rechts. Durch die Verwendung dieses Operators verschieben Sie jedes Bit der Variablen auf der linken Seite des Operators um die Anzahl der auf der rechten Seite des Operators angegebenen Bits nach rechts. Das Bit ganz links wird repliziert, um alle freien Bitpositionen aufzufüllen, die auf der linken Seite der Variablen weggelassen werden. Wenn das Ergebnis dieses Ausdrucks nicht verwendet wird und sich links vom Operator eine Variable befindet, wird der Wert dieser Variablen verschoben. Es hilft auf jeden Fall, wenn Sie Binärzahlen verstehen, bevor Sie diesen Operator verwenden. Obwohl Sie es auch so verwenden können, als ob Sie jede Position, die Sie verschieben, durch einen Faktor von 2 teilen würden. Hinweis: Die Durchführung dieser Schichtoperation ist in der Regel kostengünstiger als die vergleichbare Teilung.
Likewise, for the English text:
Bitwise right shift. By using this operator, you shift each bit of the variable on the left side of the operator to the right by the number of bits specified on the right side of the operator. The leftmost bit is replicated to fill in any vacant bit positions that are omitted on the left side of the variable. If the result of this expression is not used and there is a variable to the left of the operator, the value of that variable is shifted. It definitely helps if you understand binary numbers before using this operator. Although you can also use it like dividing each position you move by a factor of 2. Note: Performing this layering operation is usually cheaper than the comparable division.