Aller au contenu principal

Table ascii des lettres

Les vingt-six majuscules occupent les codes 65 à 90, les vingt-six minuscules les codes 97 à 122. Exactement 32 séparent chaque lettre de sa jumelle.

Table ascii des lettres
ASCIIOctalHexadécimalBinaireCaractère
651014101000001A
661024201000010B
671034301000011C
681044401000100D
691054501000101E
701064601000110F
711074701000111G
721104801001000H
731114901001001I
741124A01001010J
751134B01001011K
761144C01001100L
771154D01001101M
781164E01001110N
791174F01001111O
801205001010000P
811215101010001Q
821225201010010R
831235301010011S
841245401010100T
851255501010101U
861265601010110V
871275701010111W
881305801011000X
891315901011001Y
901325A01011010Z
971416101100001a
981426201100010b
991436301100011c
1001446401100100d
1011456501100101e
1021466601100110f
1031476701100111g
1041506801101000h
1051516901101001i
1061526A01101010j
1071536B01101011k
1081546C01101100l
1091556D01101101m
1101566E01101110n
1111576F01101111o
1121607001110000p
1131617101110001q
1141627201110010r
1151637301110011s
1161647401110100t
1171657501110101u
1181667601110110v
1191677701110111w
1201707801111000x
1211717901111001y
1221727A01111010z

Consultez la Table ascii des lettres en ligne

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

Majuscules
65 à 90 (A-Z)
Minuscules
97 à 122 (a-z)
Écart de casse
32
Lettres au total
52

Deux plages de vingt-six codes

A porte le code 65 et Z le code 90 : vingt-six codes consécutifs pour les majuscules. a porte le code 97 et z le code 122 : vingt-six codes consécutifs pour les minuscules. Les deux blocs sont séparés par six codes, de 91 à 96, occupés par des symboles.

Cette continuité garantit que l'ordre des codes suit l'ordre de l'alphabet. Comparer deux lettres de la même casse revient donc à comparer deux nombres, et parcourir l'alphabet revient à incrémenter un compteur. C'est ce qui explique la simplicité des tout premiers algorithmes de tri et de recherche.

L'écart de 32 : un seul bit de différence

Chaque minuscule porte un code supérieur de 32 à celui de sa majuscule : A vaut 65 et a vaut 97, M vaut 77 et m vaut 109, Z vaut 90 et z vaut 122. L'écart est constant sur les vingt-six lettres, sans aucune exception.

Or 32 est une puissance de deux. En binaire, A s'écrit 01000001 et a s'écrit 01100001 : les deux codes ne diffèrent que par le bit de valeur 32, le sixième en partant du bit de poids faible. Mettre ce bit à 1 donne la minuscule, le mettre à 0 donne la majuscule, l'inverser change la casse dans un sens comme dans l'autre.

C'est pour cette raison que les fonctions de changement de casse ont longtemps été écrites avec des opérations sur les bits : un OU logique avec 32, un ET logique avec le complément de 32, ou un OU exclusif avec 32. La règle ne vaut que pour les vingt-six lettres non accentuées ; appliquée à un chiffre ou à un symbole, elle produit un autre caractère sans aucun rapport.

Ce que cela change au tri alphabétique

Un tri qui compare directement les codes place toutes les majuscules avant toutes les minuscules, puisque 90 est inférieur à 97. « Zoo » passe donc avant « avion ». Ce comportement, souvent appelé tri ascii, surprend systématiquement lors d'un premier tri de liste, d'un classement de noms de fichiers ou d'un tri de colonnes dans une base de données.

Pour obtenir un ordre conforme aux usages, deux approches. La première consiste à ramener toutes les chaînes à la même casse avant de comparer. La seconde, plus robuste, consiste à utiliser une fonction de comparaison linguistique — localeCompare en JavaScript, une collation dédiée en base de données. Ces fonctions savent en prime classer les lettres accentuées à côté de leur lettre de base.

Les lettres accentuées ne sont pas dans l'ascii

é, è, à, ç, ù, ô, î ne figurent nulle part dans la table de base : les 128 codes disponibles n'ont pas laissé de place aux langues autres que l'anglais. Il faut aller chercher ces lettres dans une table étendue, ou dans Unicode, qui les couvre toutes ainsi que les alphabets non latins.

La conséquence pratique est qu'un programme qui traite du français ne peut pas se contenter de la règle des 32. Elle ne se généralise pas : dans Unicode, la majuscule de ÿ (U+00FF) est Ÿ (U+0178), à des centaines de positions de distance, et certaines lettres n'ont pas d'équivalent d'une casse à l'autre. Mieux vaut confier ces conversions aux fonctions de la bibliothèque standard du langage utilisé.

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