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
Explication :
(1 * 8 * 8) + (2 * 8) + (3) = 83
Par conséquent, 0123 est interprété comme 83 en décimal.
É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
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!