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.
| ASCII | Octal | Hexadécimal | Binaire | Caractère |
|---|---|---|---|---|
| 65 | 101 | 41 | 01000001 | A |
| 66 | 102 | 42 | 01000010 | B |
| 67 | 103 | 43 | 01000011 | C |
| 68 | 104 | 44 | 01000100 | D |
| 69 | 105 | 45 | 01000101 | E |
| 70 | 106 | 46 | 01000110 | F |
| 71 | 107 | 47 | 01000111 | G |
| 72 | 110 | 48 | 01001000 | H |
| 73 | 111 | 49 | 01001001 | I |
| 74 | 112 | 4A | 01001010 | J |
| 75 | 113 | 4B | 01001011 | K |
| 76 | 114 | 4C | 01001100 | L |
| 77 | 115 | 4D | 01001101 | M |
| 78 | 116 | 4E | 01001110 | N |
| 79 | 117 | 4F | 01001111 | O |
| 80 | 120 | 50 | 01010000 | P |
| 81 | 121 | 51 | 01010001 | Q |
| 82 | 122 | 52 | 01010010 | R |
| 83 | 123 | 53 | 01010011 | S |
| 84 | 124 | 54 | 01010100 | T |
| 85 | 125 | 55 | 01010101 | U |
| 86 | 126 | 56 | 01010110 | V |
| 87 | 127 | 57 | 01010111 | W |
| 88 | 130 | 58 | 01011000 | X |
| 89 | 131 | 59 | 01011001 | Y |
| 90 | 132 | 5A | 01011010 | Z |
| 97 | 141 | 61 | 01100001 | a |
| 98 | 142 | 62 | 01100010 | b |
| 99 | 143 | 63 | 01100011 | c |
| 100 | 144 | 64 | 01100100 | d |
| 101 | 145 | 65 | 01100101 | e |
| 102 | 146 | 66 | 01100110 | f |
| 103 | 147 | 67 | 01100111 | g |
| 104 | 150 | 68 | 01101000 | h |
| 105 | 151 | 69 | 01101001 | i |
| 106 | 152 | 6A | 01101010 | j |
| 107 | 153 | 6B | 01101011 | k |
| 108 | 154 | 6C | 01101100 | l |
| 109 | 155 | 6D | 01101101 | m |
| 110 | 156 | 6E | 01101110 | n |
| 111 | 157 | 6F | 01101111 | o |
| 112 | 160 | 70 | 01110000 | p |
| 113 | 161 | 71 | 01110001 | q |
| 114 | 162 | 72 | 01110010 | r |
| 115 | 163 | 73 | 01110011 | s |
| 116 | 164 | 74 | 01110100 | t |
| 117 | 165 | 75 | 01110101 | u |
| 118 | 166 | 76 | 01110110 | v |
| 119 | 167 | 77 | 01110111 | w |
| 120 | 170 | 78 | 01111000 | x |
| 121 | 171 | 79 | 01111001 | y |
| 122 | 172 | 7A | 01111010 | z |
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.
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

