Maison >développement back-end >C++ >Comment la soustraction de « 0 » convertit-elle un chiffre de caractère en sa valeur numérique en C ?

Comment la soustraction de « 0 » convertit-elle un chiffre de caractère en sa valeur numérique en C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-13 18:43:12364parcourir

How Does Subtracting '0' Convert a Character Digit to its Numeric Value in C?

Conversion de nombres en C : soustraire « 0 » pour extraire la valeur numérique

En C, chaque caractère, y compris les chiffres, est représenté par un entier connu sous le nom de valeur ASCII (American Standard Code for Information Interchange). Le caractère « 0 » a une valeur ASCII de 48, qui sert de point de départ à tous les caractères numériques.

Lorsque vous soustrayez « 0 » de la valeur ASCII d'un caractère, le résultat est la valeur numérique qui le personnage représente. En effet, les codes ASCII pour les chiffres sont structurés de manière séquentielle, chaque chiffre suivant ayant une valeur supérieure de un au précédent.

Par exemple :

char c = '9';
int x = (int)(c - '0');

Ici , la valeur ASCII de « 9 » est 57. Lorsque nous soustrayons « 0 » (48) de cette valeur, nous obtenons 57 - 48 = 9. Par conséquent, la la variable x se verra attribuer la valeur numérique 9.

La raison de ce comportement est que les codes ASCII des chiffres sont contigus, ce qui signifie qu'ils suivent une séquence linéaire. La soustraction de la valeur de départ (« 0 ») aligne efficacement la valeur numérique avec son code ASCII correspondant.

La table ASCII, qui mappe les caractères à leurs valeurs entières correspondantes, illustre clairement ce concept :

'0' -> 48
'1' -> 49
'2' -> 50
...
'9' -> 57

En soustrayant « 0 » de la valeur ASCII de n'importe quel chiffre, vous pouvez obtenir sa représentation numérique. Cette technique est fréquemment utilisée en programmation C pour extraire des valeurs numériques à partir de données de caractères.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn