Maison > Java > javaDidacticiel > Pourquoi Java interprète-t-il les littéraux entiers avec des zéros non significatifs comme octaux ?

Pourquoi Java interprète-t-il les littéraux entiers avec des zéros non significatifs comme octaux ?

Barbara Streisand
Libérer: 2024-12-21 11:18:12
original
962 Les gens l'ont consulté

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

Interprétation des littéraux entiers avec des zéros non significatifs

En Java, les littéraux entiers avec des zéros non significatifs sont interprétés comme des nombres octaux (base 8). Ce comportement peut être déroutant, surtout lorsqu'on le compare aux littéraux décimaux (base 10).

Considérez le code suivant :

System.out.println(0123); // Prints 83
System.out.println(123); // Prints 123
Copier après la connexion

Explication :

  • 0123 commence par un zéro non significatif, indiquant un littéral octal. Pour convertir de l'octal en décimal, multipliez chaque chiffre par la puissance correspondante de 8 et additionnez les résultats :
(1 * 8 * 8) + (2 * 8) + (3) = 83
Copier après la connexion

Par conséquent, 0123 est interprété comme 83 en décimal.

  • 123 n'a pas de zéro non significatif, il est donc interprété comme un littéral décimal, ce qui donne la valeur attendue de 123.

Éviter l'interprétation octale :

Pour éviter les interprétations octales inattendues, omettez simplement le zéro non significatif des littéraux entiers qui ne sont pas destinés à représenter des nombres octaux.

Hexadécimal Littéraux :

Java prend également en charge les littéraux hexadécimaux (base 16), qui sont préfixés par 0x. Par exemple :

System.out.println(0x123); // Prints 291
Copier après la connexion

Dans ce cas, 0x123 représente la valeur hexadécimale 123, qui équivaut à 291 en décimal.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal