Heim > Java > javaLernprogramm > Warum ändern führende Nullen in Java-Ganzzahlliteralen ihren Wert?

Warum ändern führende Nullen in Java-Ganzzahlliteralen ihren Wert?

Barbara Streisand
Freigeben: 2024-12-29 21:29:14
Original
879 Leute haben es durchsucht

Why Do Leading Zeros in Java Integer Literals Change Their Value?

Interpretation von Ganzzahlliteralen mit führenden Nullen

Ganzzahlliterale mit führenden Nullen können sich in Java unerwartet verhalten und einen anderen numerischen Wert als ihre Gegenstücke anzeigen ohne führende Nullen. Dieses Verhalten ergibt sich aus der Interpretation führender Nullen als Basispräfix.

Wenn einem numerischen Literal eine Null vorangestellt wird, wird es als Oktalzahl (Basis 8) interpretiert. Dies liegt daran, dass in der Oktalschreibweise Zahlen im Bereich von 0 bis 7 liegen können. Somit stellt „0123“ die Oktalzahl 123 dar.

Um diese Oktalzahl in ihr Dezimaläquivalent umzuwandeln, wird jede Ziffer mit ihrer entsprechenden Potenz multipliziert von 8 und die Ergebnisse werden summiert. Für „0123“ lautet diese Berechnung:

(1 * 8 * 8) + (2 * 8) + (3) = 83
Nach dem Login kopieren

Daher gibt der Code „System.out.println(0123)“ 83 aus.

Im Gegensatz dazu „123“ ohne Vorzeichen Null wird als Dezimalzahl interpretiert. Die Dezimalzahl 123 ist einfach die Summe ihrer Ziffern (1 2 3), also 123. Somit gibt „System.out.println(123)“ 123 aus.

Fehlinterpretationen vermeiden

Um das unerwartete Verhalten führender Nullen in ganzzahligen Literalen zu vermeiden, wird empfohlen, Dezimalzahlen immer mit zu beginnen eine Ziffer ungleich Null. Wenn ein Literal in der Basis 10 ausgedrückt werden soll, sollte es keine führende Null haben.

Alternative Basisschreibweisen

Während Oktal nicht mehr häufig verwendet wird, Java bietet eine Möglichkeit, hexadezimale Zahlen (Basis 16) mit dem Präfix „0x“ anzugeben. Beispielsweise stellt „0x123“ die Hexadezimalzahl 123 dar, die der Dezimalzahl 291 entspricht.

Das obige ist der detaillierte Inhalt vonWarum ändern führende Nullen in Java-Ganzzahlliteralen ihren Wert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage