7
votes

Pourquoi cette sortie 8?

8

6 Réponses :


27
votes

0 est le préfixe des nombres octals, tout comme 0x est le préfixe des numéros hexadécimaux (et 0b est le préfixe des numéros binaires , depuis Java 7).

donc 010 signifie 1 * 8 1 + 0 * 8 0 , qui est 8 .


0 commentaires

2
votes

parce que 010 , voici octal.


0 commentaires

2
votes

L'entier est en système octal parce que vous avez 0 au début.


0 commentaires

15
votes

Regardez le Spécification de la langue Java, chapitre 3.10.1 littéraux entier

Un littéral entier peut être exprimé en décimal (base 10), hexadécimal (base 16), octal (base 8) ou binaire (base 2).

Un chiffre octal consiste en un chiffre ASCII 0 suivi d'un ou de plusieurs des chiffres ASCII 0 à 7 entrecoupés avec des souligneurs et peuvent représenter un entier positif, zéro ou négatif.

C'est pourquoi 010 = 8 .


0 commentaires

0
votes

Utiliser 0 préfixe signifie que vous utilisez octal .


0 commentaires

0
votes

en Java et plusieurs autres langues, un commentaire littéral entier avec 0 est interprété comme une quantité octale (base 8).

Si vous écrivez des numéros avec plus d'un chiffre significatif que vous pourriez être confondu par le résultat. xxx


0 commentaires