Heim > Java > javaLernprogramm > Warum gibt „0123' in Java „83' aus?

Warum gibt „0123' in Java „83' aus?

Patricia Arquette
Freigeben: 2024-12-27 13:14:10
Original
825 Leute haben es durchsucht

Why Does `0123` Print `83` in Java?

Führende Nullen verwirren die Interpretation von Ganzzahlen

Beim Umgang mit ganzzahligen Literalen kann das Vorhandensein führender Nullen unerwartete Folgen haben. Betrachten Sie den folgenden Code:

System.out.println(0123); // prints 83
System.out.println(123);  // prints 123
Nach dem Login kopieren

Warum gibt die erste Zeile 83 statt 123 aus? Der Schlüssel liegt in der führenden Null.

Oktale Interpretation

Eine führende Null in einem ganzzahligen Literal gibt an, dass die Zahl oktal (Basis 8) ausgedrückt wird. Um eine Oktalzahl in eine Dezimalzahl umzuwandeln, multiplizieren Sie jede Ziffer von rechts nach links mit der entsprechenden Potenz von 8 und summieren Sie die Ergebnisse.

Im Fall von 0123 haben wir:

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

Daher wird 0123 als Dezimalwert 83 interpretiert.

Warum kein Oktalwert Floats?

Seltsamerweise erlaubt Java keine oktalen Gleitkommaliterale, daher gilt dieses Verhalten nur für Ganzzahlen.

Best Practice

Um Verwirrung zu vermeiden, wird generell empfohlen, führende Nullen in ganzzahligen Literalen zu vermeiden, es sei denn, Sie beabsichtigen ausdrücklich, die Zahl als Oktalzahl zu interpretieren.

Das obige ist der detaillierte Inhalt vonWarum gibt „0123' in Java „83' aus?. 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