Maison > Article > développement back-end > Pourquoi "0123" s'imprime-t-il sous la forme "83" en C/C ?
Comprendre les constantes numériques avec des zéros non significatifs en C/C
En C/C, les constantes numériques peuvent être préfixées par un « 0 » non significatif pour indiquer leur base ou leur système de numérotation. Ce préfixe signifie que la constante est une valeur octale (base 8).
Lorsque vous utilisez '0123' comme constante entière, le compilateur l'interprète comme une valeur octale. Dans le système numérique octal, « 123 » représente la valeur décimale 83 (881 3). Par conséquent, lorsque vous imprimez la valeur, elle génère 83 au lieu de 123.
Ce comportement est cohérent entre les compilateurs C et C, tels que GCC. Cela s'applique également aux constantes à virgule flottante préfixées par « 0 », bien que les règles de conversion puissent différer légèrement.
Pour spécifier explicitement la base d'une constante numérique, vous pouvez utiliser les préfixes suivants :
Par exemple, pour représenter la valeur décimale 123 comme constante octale, vous utiliserez « 0123 ». À l'inverse, pour représenter la valeur octale 83 comme constante décimale, vous utiliseriez 83.
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!