Les ordinateurs utilisent des nombres. Les humains utilisent des lettres et des symboles. Il nous faut un intermédiaire. L'ASCII est cet intermédiaire. L'ASCII transforme chaque lettre ou symbole en un nombre. L'ordinateur stocke ce nombre. À la lecture, l'ordinateur affiche à nouveau la lettre. C'est ainsi que fonctionne le texte dans de nombreux fichiers et applications.
Un ordinateur fonctionne à l'électricité. Il perçoit deux états : allumé et éteint. Ces états sont appelés bits . Un bit est soit un 0, soit un 1. Plusieurs bits combinés forment des nombres plus grands. Huit bits forment un octet . Grâce aux bits, nous pouvons compter. Le comptage nous permet de nommer les choses. Le code ASCII utilise le comptage pour nommer les lettres et les symboles.
Un bit permet deux choix. Deux bits permettent quatre choix. Mathématiquement, ce concept s'exprime par \(\;2^n\) . Pour \(n=7\) on obtient 2⁷ = 128 choix. Pour \(n=8\) \(2^8 = 256\) \(2^7 = 128\) . L'ASCII utilise 7 bits, ce qui donne 128 caractères nommés. Par la suite, des ensembles de 8 bits, soit 256 caractères, ont été créés. On parle alors d'ASCII étendu .
ASCII signifie American Standard Code for Information Interchange (Code standard américain pour l'échange d'informations) . Apparu dans les années 1960, il a été conçu pour les premières imprimantes, téléscripteurs et ordinateurs. Il attribue un numéro à chaque lettre, chiffre, espace et à certains symboles. Il attribue également des numéros spéciaux à des actions comme le saut de ligne . La première version utilisait 7 bits, soit les nombres de 0 à 127.
Remarquez une chose intéressante : les lettres minuscules ont 32 caractères de plus que leurs majuscules correspondantes. Par exemple, \(\;97 - 65 = 32\) Ainsi, « a » a 32 caractères de plus que « A », « b » a 32 caractères de plus que « B », et ainsi de suite. Cette propriété simplifie certaines tâches informatiques.
Lorsque vous appuyez sur la touche Entrée, votre ordinateur peut envoyer un saut de ligne (LF), un retour chariot (CR) ou les deux, selon le système. De nombreux outils Internet utilisent le saut de ligne. Certains anciens systèmes utilisaient simultanément le retour chariot et le saut de ligne.
On peut écrire les nombres de différentes manières. Le système décimal est le système de numération le plus courant, utilisant les chiffres de 0 à 9. Le système binaire n'utilise que 0 et 1. Le système hexadécimal utilise les chiffres de 0 à 9 et les lettres de A à F.
Comment le binaire produit-il 65 pour 'A' ? Regardez les bits dans 01000001. Le bit le plus à gauche vaut 128. Ensuite, 64, 32, 16, 8, 4, 2, 1. Seuls 64 et 1 sont activés. Donc \(01000001_{(2)} = 0\times128 + 1\times64 + 0\times32 + 0\times16 + 0\times8 + 0\times4 + 0\times2 + 1\times1 = 65\) .
Appuyez sur une touche. Le clavier envoie un code à l'ordinateur. Le système le convertit en un numéro de caractère. Pour de nombreuses touches, ce numéro correspond au code ASCII. L'application stocke ce numéro en mémoire. Lors de l'affichage du texte, elle recherche le numéro et dessine la lettre correspondante. À l'enregistrement, les numéros sont enregistrés dans le fichier.
Prenons l'exemple du message « Salut ! » . Les lettres sont H, i et !. Leurs codes ASCII sont 72, 105 et 33. En binaire, cela correspond à 01001000, 01101001 et 00100001. Le réseau envoie ces bits. Le destinataire les lit et voit les nombres correspondants. Il affiche alors à nouveau H, i et !. C'est ainsi que fonctionnent les messages texte simples.
On souhaitait davantage de symboles. On voulait des lettres comme é, ñ et ø, ainsi que des symboles monétaires comme €. Le jeu de 7 bits ne comportait que 128 symboles. On est donc passé à 8 bits. Avec 8 bits, on obtient \(2^8 = 256\) symboles. La moitié supérieure, de 128 à 255, était réservée aux lettres et symboles supplémentaires. Mais un problème se posait : différents groupes choisissaient des nombres différents pour ces lettres et symboles supplémentaires. Ces choix constituent les pages de codes .
Comme les pages de codes diffèrent, un même nombre peut afficher un symbole différent sur un autre ordinateur. Ce phénomène, appelé mojibake , donne l'impression de caractères étranges. C'est l'une des raisons pour lesquelles le monde est passé à Unicode.
Unicode est une norme majeure permettant d'afficher de nombreuses langues, des symboles mathématiques et des émojis. Elle peut contenir plus d'un million de symboles. Il existe plusieurs méthodes de stockage pour Unicode, dont l' UTF-8 , très répandue.
En ASCII, chaque caractère utilise un octet. Le mot « chat » utilise donc 3 octets. La phrase « salut maman » comporte 6 caractères, espace compris, et utilise donc 6 octets. En termes simples, \(\textrm{octets ASCII} = \textrm{nombre de caractères}\)
Les ordinateurs trient souvent les chaînes de caractères en fonction de leur numéro de caractère. L'ordre ASCII regroupe les éléments d'une certaine manière.
Cela signifie que Zoo précède Apple si l'on compare simplement les valeurs ASCII. Le tri se fait par valeurs numériques, et non par prononciation.
Notez que l' esperluette est &. Son code ASCII est 38. Le signe plus + est 43. Le signe moins - est 45.
On peut créer des images uniquement à l'aide de caractères ASCII . Voici un petit visage réalisé avec des caractères ASCII.
:-) Un simple sourire
(^_^) Visage amical
o_O Surpris
Chaque face est composée uniquement de caractères comme le deux-points, le tiret et les parenthèses. Ni couleurs ni formes. Juste du texte.
L'ASCII est issu des téléscripteurs et des premiers ordinateurs. En 1963, une première version fut adoptée. Elle permit à de nombreuses machines différentes de communiquer entre elles. Grâce à un code unique, une lettre comme le A représentait le même nombre partout. Cela simplifia l'envoi de messages et l'impression de textes.
L'ASCII ne possède que 128 caractères. C'est insuffisant pour toutes les langues. Il ne peut pas afficher le chinois, l'hindi, l'arabe, ni de nombreux autres systèmes d'écriture. Il ne peut pas non plus afficher les émojis, ni de nombreux symboles mathématiques et musicaux. Pour cela, on utilise Unicode. Unicode peut afficher de nombreux systèmes d'écriture et symboles. L'UTF-8 est un format de stockage pour ces caractères. L'avantage est que tout le texte ASCII fonctionne correctement avec l'UTF-8. Les systèmes modernes peuvent donc lire facilement les anciens fichiers ASCII.
La plupart des applications attendent un encodage UTF-8. Cependant, lorsqu'un fichier ne contient que des lettres et des symboles ASCII, il reste identique en UTF-8. Les programmeurs apprécient cette simplicité. Les pages web, les API et de nombreux outils utilisent l'UTF-8, qui inclut l'ASCII sans modification.
L'ASCII utilise un jeu de 7 bits. Cela représente jusqu'à \(2^7 = 128\) caractères différents. Un jeu étendu sur 8 bits en \(2^8 = 256\) Si votre texte ne contient que des caractères ASCII et qu'il comporte \(n\) caractères, il utilise \(n\) octets. Dans un message très court comme « OK », \(n = 2\) Il utilise donc 2 octets lorsqu'il est stocké en ASCII ou en UTF-8.
Certains caractères ASCII ont une fonction sans s'afficher. L'espace, par exemple, ne laisse aucun caractère. En revanche, LF et CR déplacent le curseur. La tabulation permet de sauter une ligne. Lorsqu'on ouvre un fichier dans un éditeur spécifique, LF peut s'afficher comme un saut de ligne (\n). Ce symbole ne fait pas partie du registre ASCII ; il s'agit d'une façon pour l'éditeur d'afficher le saut de ligne.
Imaginez une étiqueteuse qui imprime des noms. Elle lit le nom sous forme de caractères. Elle convertit chaque caractère en un nombre ASCII. Elle stocke ces nombres en mémoire. Elle imprime les lettres en cherchant comment dessiner chaque nombre. Si elle rencontre LF (10), elle passe à la ligne suivante avant d'imprimer la suite.
Observez à nouveau le caractère « ! ». On peut écrire son code de trois manières : décimal : 33 ; binaire : 00100001 ; hexadécimal : 21. Mathématiquement, \(\;33_{(10)} = 00100001_{(2)} = 21_{(16)}\) . Chaque format représente la même valeur. Les applications choisissent le format adapté à leurs besoins. Les humains lisent généralement les nombres en décimal, tandis que les ordinateurs préfèrent le binaire. L’hexadécimal est une représentation abrégée des nombres binaires.
L'ASCII est compact et lisible. Créé très tôt, il a servi de base à de nombreux outils et protocoles. Les 128 premiers codes Unicode correspondant à l'ASCII, ce système fonctionne encore aujourd'hui. C'est pourquoi vous pouvez ouvrir d'anciens fichiers texte sur un téléphone ou un ordinateur portable récent et y voir les mêmes caractères.
Ouvrez un fichier contenant le texte « Hello » . Les octets sont les nombres ASCII 72 101 108 108 111. En binaire, cela donne : 01001000 01100101 01101100 01101100 01101111. L’application lit chaque nombre et affiche « Hello » à l’écran. Si le nombre suivant est 10, elle passe à la ligne suivante avant d’afficher le texte suivant. Le processus est ainsi simple et fiable.
Prenons le nombre 10. En binaire, il s'écrit 00001010. En décimal, il représente dix. En ASCII, 10 correspond à LF, le saut de ligne. Cela montre qu'un même nombre peut être représenté de différentes manières. Sa signification dépend de son utilisation. Si l'on considère qu'il s'agit d'un code de caractère, alors 10 signifie LF. Si l'on considère qu'il s'agit simplement d'un nombre de pommes, alors il représente dix pommes. Le contexte est essentiel.
Nous allons envoyer le mot « Soleil » d'un appareil à un autre. Les codes sont : « S » 83, « u » 117 et « n » 110. En binaire, 83 correspond à 01010011, 117 à 01110101 et 110 à 01101110. Les bits circulent sous forme de signaux marche/arrêt. L'autre appareil reconvertit les bits en nombres, puis ces nombres en lettres. Il affiche alors le mot « Soleil » . Si le code suivant est 32, il s'agit d'un espace. Si le suivant est 33, il s'agit d'un point d'exclamation (« ! »). Ces règles restent les mêmes à chaque transmission. C'est là toute la puissance d'un code partagé.