Heute habe ich Java-Linksverschiebung und Rechtsverschiebung überprüft:
Positive und negative Zahlen werden in Java in Form eines Zweierkomplementcodes ausgedrückt
Zum Beispiel -2 in Die Computerdarstellung ist 11111111 11111111 11111110
1. Linksverschiebung
-2<<2, also das Ergebnis von -2 Linksverschiebung um 2 Bits sind: 11111111 11111111 111 11111 11111000 (Untere Bits sind mit 0 gefüllt)
Das höchste Bit ist 1, was angibt, dass es sich um eine negative Zahl handelt ist der ursprüngliche Code der positiven Zahl: „Das höchste Bit ist 1, und die restlichen Bits sind invertiert. Fügen Sie am Ende 1 hinzu, um es zu erhalten.“
Durch Invertieren können Sie also erkennen, dass das Ergebnis von -2<<2 tatsächlich die Zahl 10000000 00000000 00000000 00001000 (-8) darstellt
2. Verschiebung richtig
Wenn das High-Bit 1 ist, addiere 1, wenn das High-Bit 0 ist, addiere 0 00000000 00000000 00000001 (- 1)
3 Der Schiebeoperator kann mit „=" kombiniert werden, um
a<<=2 zu verwenden, um den um 2 Bits nach links verschobenen Wert von a darzustellen. Zuweisen zu a
4 . Hinzugefügt: Die Java Virtual Machine schirmt das Problem von Big Endian und Little Endian ab, und intern ist alles Little Endian.