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
Barbara StreisandOriginal
2024-12-21 11:18:121005Durchsuche

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

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

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

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!

Stellungnahme:
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