← Toutes les calculatrices

Tech

Calculateur ASCII

ASCII associe 128 caractères aux nombres 0–127. La conversion entre caractères, décimal, hexadécimal et binaire est courante en débogage, et comprendre l’organisation de la table explique plusieurs astuces de programmation bien connues.

Besoin des étapes ? Demandez à Math BuddieUne explication détaillée en français.

Comment utiliser cette calculatrice

  1. Saisissez du texte pour voir les codes de chaque caractère, ou un code pour obtenir le caractère.
  2. Consultez côte à côte les représentations décimale, hexadécimale et binaire.
  3. Utilisez les notes sur les caractères de contrôle pour examiner les espaces blancs ou les fins de ligne.
  4. 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'.

  1. 'H' = 72 en décimal = 0x48 = 01001000.
  2. 'i' = 105 en décimal = 0x69 = 01101001.
  3. '9' = 57 en décimal = 0x39 = 00111001.
  4. 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.

English version