Heim > Java > javaLernprogramm > Was bedeutet >>> in Java?

Was bedeutet >>> in Java?

青灯夜游
Freigeben: 2019-11-18 16:00:31
Original
14283 Leute haben es durchsucht

Was bedeutet >>> in Java?

Was bedeutet in Java?

ist der Shift-Operator in Java, was eine vorzeichenlose Rechtsverschiebung bedeutet.

Die Operanden des Schiebeoperators sind ebenfalls binäre „Bits“. Sie können allein zur Verarbeitung von Ganzzahltypen (einem der Haupttypen) verwendet werden.

Der „vorzeichenbehaftete“ Linksverschiebungsoperator (<<) kann den Operanden auf der linken Seite des Operators um die auf der rechten Seite von angegebene Anzahl von Bits nach links verschieben der Operator (füllen Sie die unteren Bits aus) 0).

Der „vorzeichenbehaftete“ Rechtsverschiebungsoperator (>>) verschiebt den Operanden auf der linken Seite des Operators um die auf der rechten Seite angegebene Anzahl von Ziffern nach rechts Operator. Der „vorzeichenbehaftete“ Rechtsverschiebungsoperator verwendet eine „Vorzeichenerweiterung“: Wenn der Wert positiv ist, wird 0 in das High-Bit eingefügt; wenn der Wert negativ ist, wird 1 in das High-Bit eingefügt.

Java fügt außerdem einen „vorzeichenlosen“ Rechtsverschiebungsoperator (>>>) hinzu, der eine „Nullerweiterung“ verwendet: Unabhängig davon, ob sie positiv oder negativ ist, fügen Sie 0 ein hohes Bit. Dieser Operator ist in C oder C++ nicht verfügbar.

Wenn char, byte oder short verschoben werden, werden sie automatisch in ein int konvertiert, bevor die Verschiebung durchgeführt wird. Es werden nur die 5 Low-Bits rechts verwendet. Dies verhindert, dass wir eine unrealistische Anzahl von Ziffern innerhalb eines int verschieben. Wenn ein langer Wert verarbeitet wird, ist das Endergebnis ebenfalls lang. Zu diesem Zeitpunkt werden nur die 6 niedrigen Bits auf der rechten Seite verwendet, um zu verhindern, dass die Bewegung die Anzahl der vorgefertigten Ziffern im langen Wert überschreitet.

Aber Sie können auch auf ein Problem stoßen, wenn Sie eine Rechtsverschiebung ohne Vorzeichen durchführen. Wenn Sie eine Rechtsverschiebungsoperation für ein Byte oder einen kurzen Wert durchführen, erhalten Sie möglicherweise nicht das richtige Ergebnis (insbesondere Java 1.0 und Java 1.1).

Sie werden automatisch in den Typ „int“ konvertiert und nach rechts verschoben. Eine „Null-Erweiterung“ kommt jedoch nicht vor, sodass Sie in diesen Fällen ein Ergebnis von -1 erhalten. Sie können das folgende Beispiel verwenden, um Ihre eigene Implementierung zu testen:

public class URShift {
public static void main(String[] args) {
int i = -1;
i >>>= 10;
System.out.println(i);
long l = -1;
l >>>= 10;
System.out.println(l);
short s = -1;
s >>>= 10;
System.out.println(s);
byte b = -1;
b >>>= 10;
System.out.println(b);
}
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas bedeutet >>> in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Kann Java als Backend des Webs verwendet werden?
Aus 1970-01-01 08:00:00
0
0
0
Installieren Sie JAVA
Aus 1970-01-01 08:00:00
0
0
0
Java kann nicht installiert werden
Aus 1970-01-01 08:00:00
0
0
0
Ist das in der Java-Sprache?
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage