Préfixer les constantes numériques avec '0' dans C/C
Question :
Pourquoi une constante entière préfixée par « 0 » dans C/C est-elle évaluée à une valeur différente de celle attendue ? Par exemple, l'utilisation de la constante '0123' donne la valeur 83 au lieu de 123.
Réponse :
En C/C et dans d'autres langages de programmation, les constantes numériques peuvent être préfixé par différents préfixes pour indiquer la base numérique qu'ils représentent. Le préfixe « 0 » désigne une constante octale (base 8).
Lorsque le compilateur rencontre une constante numérique préfixée par « 0 », il interprète les chiffres qui la suivent comme un nombre octal. Dans le cas de '0123', il est traité comme (0 8^3) (1 8^2) (2 8^1) (3 8^0), ce qui est évalué à 83 en décimal.
Ceci est cohérent avec la spécification du langage C/C, qui stipule qu'une constante numérique commençant par « 0 » est traitée comme un nombre octal. Cette règle s'applique aux constantes entières et à virgule flottante.
Comprendre le rôle des préfixes numériques est crucial pour représenter et interpréter avec précision les données numériques dans les programmes C/C.
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!