2016-03-29 23 views
1
int x = 1 << 25; 

Was bedeutet "< <"? Unsicher, was das tut, meine Idee gibt mir keine Fehler obwohl .. Ich habe versucht, auf Foren und googeln, aber konnte keine Lösung finden. Irgendwelche Ideen?Java was bedeutet "<<"?

+6

[Java Bitshift-Operationen] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html) –

+0

Auch für zukünftige Referenz können Sie SymbolHound (eine Suchmaschine) verwenden, mit der Sie suchen können ohne Abstreifsymbole. Zum Beispiel [dies] (http://symbolhound.com/?q=%3C%3C+java) wäre Ihre Suche/Ergebnisse für diese spezielle Frage –

Antwort

2

Es ist eine Verschiebung nach links (Bit). JLS-15.19. Shift operators sagt (teilweise)

Der Betreiber << (Linksverschiebung), >> (unterzeichnet Verschiebung nach rechts), und >>> (unsigned Verschiebung nach rechts) sind die Shift-Operatoren genannt. Der linke Operand eines Schichtoperators ist der Wert, der verschoben werden soll; Der rechte Operand gibt den Verschiebungsabstand an.

Für ein einfaches Beispiel betrachten

System.out.println(Integer.toBinaryString(1)); 
System.out.println(Integer.toBinaryString(1 << 1)); 
System.out.println(Integer.toBinaryString(1 << 2)); 

Welche

1 
10 
100 

gibt, da es das einzige 1 Bit links einmal und zweimal jeweils verschiebt.

In Ihrem Beispiel int x = 1 << 25; dass ein 1 von 25 0 s (binär oder 33554432 in dezimal) gefolgt ist.