2012-06-29 17 views
5

Mögliche Duplizieren:
Difference between >>> and >>
What does “>>>” in java mean?Was bedeutet >> und >>> in Java?

Was ist >> und >>> in Java bedeuten?

Warum haben -1 >> 2 und -1 >>> 2 unterschiedliche Ergebnisse?

+0

Signierte und nicht signierte Verschiebung rechts. –

+3

Ich sollte beachten, dies war eine nette und präzise Frage, die einigermaßen gut formatiert war. Rundum gute erste Frage. Leider wurde diese Frage zuvor gestellt, daher stimme ich zum Schließen der Frage als Duplikat zu. Ich denke, dass es sich für Sie lohnt, die [faq] zu lesen, wenn Sie noch nicht (oder zumindest [editing-help] (http://stackoverflow.com/editing-help/) für einige Abschriften-Tipps) haben. – zzzzBov

+0

Danke, ich würde es überprüfen und die FAQ lesen. – duobei

Antwort

8

>> ist ein rechtsdrehender Operator, der ein Bitmuster nach rechts verschiebt. >>> ist ein vorzeichenloser Rechtsverschiebungsoperator, der eine Null in die äußerste linke Position verschiebt. Bitte beachten Sie the Oracle Docs.

+7

Gute Antwort, aber bedenke das Beantworten mit einem Beispiel anstatt nur auf eins zu zeigen. Ich persönlich bevorzuge es, ein Beispiel zu sehen, anstatt auf einen Link zu klicken, um einen zu sehen. – Jon

3

In Java gibt es 2 Arten von Rechtsverschiebungen. >>> wird Nullen anhängen, um die leeren Felder für positive und negative Zahlen (logische Verschiebung rechts) zu füllen, während >> 1 wenn negative und 0 wenn positive (Vorzeichenerweiterung) anhängen wird.