Comment utiliser cette calculatrice
- Saisissez du texte pour voir les codes de chaque caractère, ou un code pour obtenir le caractère.
- Consultez côte à côte les représentations décimale, hexadécimale et binaire.
- Utilisez les notes sur les caractères de contrôle pour examiner les espaces blancs ou les fins de ligne.
- Passez à l’affichage des octets UTF-8 pour tout caractère dont le code dépasse 127.
Méthode de calcul
La structure de la table est délibérée. Les codes 0–31 sont des caractères de contrôle (tabulation 9, saut de ligne 10, retour chariot 13), 32 est l’espace, les chiffres '0'–'9' occupent 48–57, les majuscules 'A'–'Z' occupent 65–90 et les minuscules 'a'–'z' occupent 97–122. Les majuscules et les minuscules étant séparées d’exactement 32, soit un seul bit, la conversion de casse consiste historiquement à inverser un bit. Soustraire 48 au code d’un caractère chiffre donne sa valeur numérique.
ASCII ne couvre que 128 points de code. Le texte moderne utilise donc UTF-8, compatible octet par octet avec ASCII pour les 128 premières valeurs et utilisant deux à quatre octets au-delà. C’est pourquoi un caractère accentué peut occuper un point de code mais deux octets, ce qui fausse les contrôles de longueur conçus pour ASCII. Les bugs de fin de ligne proviennent de la même table : LF seul sous Unix, CR LF sous Windows.
Formule et références
Valeur du chiffre = code − 48 ; majuscule = minuscule − 32 ; hexadécimal = décimal en base 16
Jeu de caractères ASCII ANSI X3.4 / ISO 646 et encodage UTF-8 défini dans la RFC 3629.
Exemple de calcul
Encodage de la chaîne 'Hi9'.
- 'H' = 72 en décimal = 0x48 = 01001000.
- 'i' = 105 en décimal = 0x69 = 01101001.
- '9' = 57 en décimal = 0x39 = 00111001.
- Valeur numérique de '9' = 57 − 48 = 9.
72 105 57 en décimal, ou 48 69 39 en hexadécimal, soit trois octets puisque tous les caractères appartiennent à ASCII.
Questions fréquentes
Quelle est la différence entre ASCII et Unicode ?
ASCII définit 128 caractères ; Unicode en définit plus de 140,000. UTF-8 encode Unicode et correspond à ASCII pour les 128 premiers.
Pourquoi le code d’une majuscule est-il inférieur de 32 à celui de sa minuscule ?
La table a été organisée pour que la casse ne diffère que d’un seul bit, ce qui permet une conversion par une opération bit à bit peu coûteuse.
Que sont les caractères de contrôle ?
Les codes 0–31, à l’origine des commandes de téléscripteur. La tabulation, le saut de ligne et le retour chariot sont ceux qui restent utilisés au quotidien.
Pourquoi la longueur de ma chaîne semble-t-elle incorrecte ?
Vous comptez probablement des octets, pas des caractères. Les caractères non ASCII occupent plusieurs octets en UTF-8.