Heim > Java > javaLernprogramm > Warum interpretiert Java ganzzahlige Literale mit führenden Nullen als Oktalliterale?

Warum interpretiert Java ganzzahlige Literale mit führenden Nullen als Oktalliterale?

Barbara Streisand
Freigeben: 2024-12-21 11:18:12
Original
901 Leute haben es durchsucht

Why Does Java Interpret Integer Literals with Leading Zeroes as Octal?

Integer-Literale mit führenden Nullen interpretieren

In Java werden Integer-Literale mit führenden Nullen als Oktalzahlen (Basis 8) interpretiert. Dieses Verhalten kann rätselhaft sein, insbesondere im Vergleich zu dezimalen Literalen (Basis 10).

Bedenken Sie den folgenden Code:

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

Erklärung:

  • 0123 beginnt mit einer führenden Null, was auf ein Oktalliteral hinweist. Um von Oktal in Dezimal umzuwandeln, multiplizieren Sie jede Ziffer mit der entsprechenden Potenz von 8 und summieren Sie die Ergebnisse:
(1 * 8 * 8) + (2 * 8) + (3) = 83
Nach dem Login kopieren

Daher wird 0123 als 83 in der Dezimalzahl interpretiert.

  • 123 hat keine führende Null und wird daher als Dezimalliteral interpretiert, was den erwarteten Wert von ergibt 123.

Oktale Interpretation vermeiden:

Um unerwartete oktale Interpretationen zu vermeiden, lassen Sie einfach die führende Null bei ganzzahligen Literalen weg, die nicht zur Darstellung von Oktalzahlen gedacht sind.

Hexadezimal Literale:

Java unterstützt auch hexadezimale (Basis-16) Literale, denen 0x vorangestellt ist. Zum Beispiel:

System.out.println(0x123); // Prints 291
Nach dem Login kopieren

In diesem Fall stellt 0x123 den Hexadezimalwert 123 dar, was 291 in Dezimalzahl entspricht.

Das obige ist der detaillierte Inhalt vonWarum interpretiert Java ganzzahlige Literale mit führenden Nullen als Oktalliterale?. 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