Décodage des valeurs de caractères : pourquoi la soustraction de « 0 » divulgue la représentation numérique
Une question déroutante se pose : pourquoi la soustraction de « 0 » à un Le caractère en C révèle-t-il la valeur numérique qu'il représente ?
Pour résoudre cette énigme, Plongeons dans le domaine de l'ASCII (American Standard Code for Information Interchange), qui attribue des codes numériques à chaque caractère. « 0 » occupe la première position dans cette séquence numérique, les caractères suivants étant progressivement attribués à des valeurs plus élevées.
Par exemple, « 9 » représente la valeur numérique 57, tandis que « 0 » correspond à 48. En soustrayant « 0 » ' à partir d'un caractère, on calcule essentiellement la différence entre son code ASCII et le code ASCII de '0'.
Considérons l'exemple : char c = « 9 » ; int x = (int)(c - '0');
Ici, '9' a un code ASCII de 57. Soustraire '0' (qui a un code ASCII de 48) donne 57 - 48 = 9, ce qui est précisément la valeur numérique représentée par « 9 ».
Le tableau ASCII suivant illustre davantage cela concept :
Character | ASCII Code |
---|---|
'0' | 48 |
'1' | 49 |
'9' | 57 |
En soustrayant « 0 » à n'importe quel caractère, nous pouvons décoder efficacement la valeur numérique qu'il représente, une technique couramment utilisée dans diverses applications de programmation.
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!