Aller au contenu principal

Table ascii des chiffres

Les dix chiffres occupent les codes ascii 48 à 57, dans l'ordre. Une seule soustraction sépare le caractère de sa valeur numérique.

Table ascii des chiffres
ASCIIOctalHexadécimalBinaireCaractère
486030001100000
496131001100011
506232001100102
516333001100113
526434001101004
536535001101015
546636001101106
556737001101117
567038001110008
577139001110019

Consultez la Table ascii des chiffres en ligne

Cette page web répertorie pour vous sous forme de tableau la liste des caractères ascii pour la Table ascii des chiffres.

Plage de codes
48 à 57
En hexadécimal
30 à 39
Formule
code = 48 + valeur
Préfixe binaire commun
0011

Dix codes consécutifs, de 48 à 57

Le chiffre 0 porte le code 48 et le chiffre 9 le code 57. Entre les deux, les dix chiffres se suivent sans interruption et dans l'ordre naturel. Cette continuité n'est pas un hasard : elle a été voulue pour que les machines puissent passer d'un caractère à sa valeur numérique par un simple calcul, sans consulter la moindre table de correspondance.

En hexadécimal, la plage va de 30 à 39. En binaire, les dix codes commencent tous par les mêmes quatre bits, 0011, suivis de la valeur du chiffre écrite sur les quatre bits restants : le caractère 0 s'écrit 00110000 et le caractère 9 s'écrit 00111001.

La formule à retenir : code = 48 + valeur

De cette continuité découle la seule formule à mémoriser : le code d'un chiffre vaut 48 plus sa valeur. Le chiffre 7 porte donc le code 48 + 7 = 55. Dans l'autre sens, valeur = code − 48 : le code 52 correspond au chiffre 52 − 48 = 4.

En hexadécimal, la lecture est encore plus directe. Le code s'écrit 3X, où X est le chiffre lui-même : 0x37 est le caractère 7, 0x32 est le caractère 2. Le quartet de poids faible donne la valeur, le quartet de poids fort vaut invariablement 3. Il suffit de le mettre à zéro pour obtenir le nombre, et de le remettre à 3 pour retrouver le caractère.

En programmation : l'expression c − '0'

Tous les langages qui manipulent des codes de caractères exploitent cette propriété. L'expression c - '0' convertit un caractère chiffre en entier, aussi bien en C qu'en C++, en Java ou en JavaScript après un appel à charCodeAt. L'opération inverse, '0' + n, fabrique le caractère correspondant à un entier compris entre 0 et 9.

La même continuité sert à vérifier qu'un caractère est bien un chiffre : il suffit de tester que son code est compris entre 48 et 57, ce que l'on écrit couramment c >= '0' && c <= '9'. Une réserve toutefois : la conversion ne vaut que pour un chiffre isolé. Transformer la chaîne « 123 » en l'entier 123 demande une vraie analyse, chiffre après chiffre, avec des multiplications par dix successives.

Le caractère 0 n'est pas l'entier 0

C'est la confusion la plus fréquente chez les débutants. Le caractère '0' est un signe typographique dont le code vaut 48 ; l'entier 0 est une valeur numérique qui vaut zéro. Les deux n'ont ni la même représentation en mémoire, ni le même comportement dans les calculs.

Les conséquences sont très concrètes. En JavaScript, la chaîne « 0 » est considérée comme vraie dans un test, alors que le nombre 0 est faux. Dans un fichier texte, le nombre 2024 occupe quatre octets, ceux des caractères 2, 0, 2 et 4 ; stocké en binaire dans un entier, il n'en occupe que deux. Savoir de quel côté on se trouve évite une grande partie des erreurs de traitement de données.

Pour aller plus loin : Convertir un code ascii en décimal, binaire ou hexadécimal