Der unten stehende Herausgeber bringt Ihnen einen Artikel über Java-Schichtbetriebsmethoden071af19a55f4da1989e8c02b755ba052>, >>> Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor, um einen Blick darauf zu werfen.
e47812583238cd2d3b71d7f12ef5690e>, vorzeichenbehaftete Rechtsverschiebung, verschiebt den gesamten Binärwert des Operanden um eine angegebene Anzahl von Stellen nach rechts, füllt die hohen Bits von Ganzzahlen mit 0 und füllt die hohen Bits von negativen Zahlen mit 1 (wobei das Vorzeichen negativer Zahlen unverändert bleibt).
int rightShift = 10; System.out.println("十进制:" + rightShift + ", 二进制:" + Integer.toBinaryString(rightShift)); int newRightShift = rightShift >> 2; System.out.println("右移2位后十进制:" + newRightShift + ", 右移2位后二进制" + Integer.toBinaryString(newRightShift)); //右移n位后的运算数x十进制结果,x = x / 2
Die oben genannten sind positive ganze Zahlen und die Operationsergebnisse sind wie folgt.
Als nächstes schauen wir uns an, was passiert, wenn eine negative Zahl um 2 Bits nach rechts verschoben wird. Das Ergebnis der Operation ist wie folgt.
Das Grundprinzip der vorzeichenbehafteten Rechtsverschiebung negativer Zahlen ist immer noch das gleiche wie bei der Linksverschiebung. Der Unterschied besteht in der Berechnung des Ergebnisses, da es sich um eine vorzeichenbehaftete Rechtsverschiebung handelt. und der letzte wird immer nach rechts verschoben. Das Ergebnis ist -1. Zusammenfassend lässt sich sagen, dass, wenn der Operand eine gerade Zahl ist, sein Operationsergebnis x = -(|x| / 2) ist. Wenn der Operand eine ungerade Zahl ist, dann ist sein Operationsergebnis x = -(|x| / 2). ) - 1.
>>>, vorzeichenlose Rechtsverschiebung, egal ob positiv oder negativ, die hohen Bits werden mit 0 gefüllt (Vorzeichenbit wird ignoriert)
Schauen Sie sich zuerst positive Zahlen an, positive Zahlen >>>Rechtsverschiebung ohne Vorzeichen und Rechtsverschiebung mit >>Vorzeichen haben die gleichen Berechnungsergebnisse
int rightShift = 10; System.out.println("十进制:" + rightShift + ", 二进制:" + Integer.toBinaryString(rightShift)); int newRightShift = rightShift >>> 2; System.out.println("右移2位后十进制:" + newRightShift + ", 右移2位后二进制" + Integer.toBinaryString(newRightShift)); //右移n位后的云算数x十进制结果,x = x / 2
Die oben genannten sind positive ganze Zahlen und die Operationsergebnisse sind wie folgt.
Als nächstes schauen wir uns negative ganze Zahlen an. Die Ergebnisse der Operation sind wie folgt.
Obwohl die Binärdatei nach der vorzeichenlosen Verschiebung und die Binärdatei nach der vorzeichenbehafteten Verschiebung gleich aussehen, sind die Ergebnisse ziemlich unterschiedlich. Denken Sie daran, dass es sich tatsächlich um eine vorzeichenbehaftete Verschiebung nach rechts handelt Rechenoperation, die Vorzeichen ignoriert, d. h. die High-Bits werden gleichmäßig mit 0 aufgefüllt.
Das obige ist der detaillierte Inhalt vonShift-Operationsmethoden in Java (<<, >>, >>>). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!