Codage des caractères dans le code C ++

Tout à l'ordinateur est représenté par un motif de uns et de zéros - variations de tension qui sont interprétés comme des nombres. Ainsi, la configuration de bits 0000 0001 est le numéro 1 lorsqu'il est interprété comme un entier. Cependant, ce même motif de bits signifie quelque chose de complètement différent quand interprété comme une instruction par le processeur.

Il ne faut donc pas surprenant que l'ordinateur code les caractères de l'alphabet en attribuant chacun un nombre.

Considérons le caractère 'A'. Vous pouvez assigner la valeur que vous voulez, tant que nous sommes tous d'accord sur la valeur. Par exemple, vous pouvez assigner une valeur de 1 à 'A', si vous voulez. Logiquement, vous pourriez alors affecter la valeur 2 à 'B', 3 à «C», et ainsi de suite.




Dans ce schéma, 'Z' obtiendrait la valeur 26. Vous pourrait alors recommencer en affectant la valeur de 27 à 'a', 28 'B', jusque 52 pour 'z'. Cela laisse encore l'chiffres '0' à '9' ainsi que tous les symboles spéciaux comme l'espace, point, une virgule, barre oblique, point-virgule, et les drôles de personnages que vous voyez lorsque vous appuyez sur les touches numériques tout en maintenant la touche maj.

Ajoutez à cela les caractères non-imprimables tels que onglet et nouvelle ligne. Quand tout est dit et fait, vous pouvez encoder l'intégralité de clavier anglais en utilisant des nombres compris entre 1 et 127.

Parfois, vers 1963, il y avait un accord général sur la façon dont les caractères doivent être encodés en anglais. L'ASCII (American Standard Coding for Information Interchange) codage de caractères indiqué dans a été adopté à peu près universellement, sauf pour une seule entreprise.

IBM a publié sa propre norme en 1963 ainsi. Les deux normes de codage duked it out pour une dizaine d'années, mais par les début des années 1970 - lorsque C et C ++ ont été créés - ASCII avaient à peu près gagné la bataille. La carboniser type a été créé avec l'encodage de caractères ASCII à l'esprit.

L'ensemble de caractères ASCII
ValeurCharValeurChar
0NUL64@
1Début de la vedette65UN
2Début du texte66B
3Fin de texte67C
4Fin de la transmission68
5Demande de renseignements69E
6Reconnaître70F
7Cloche71g
8Retour arrière72H
9Tab73je
10Nouvelle ligne74J
11Tab Vertical75K
12New Form Feed Page-76L
13Carriage Return77M
14Maj Out78N
15Maj En79O
16Data Link évasion80P
17Device Control 181Q
18Device Control 282R
19Device Control 383S
20Device Control 484T
21Acquittement négatif85U
22Idle synchrone86V
23Fin de la transmission87W
24Annuler88X
25Fin de la moyenne89Y
26Suppléant90Z
27Échapper91[
28Déposer Separator92
29Groupe Séparateur93]
30Enregistrez Separator94^
31Unité séparateur95_
32Espace96`
33!97un
3498b
35#99c
36$100
37%101e
38102F
39'103g
40(104h
41)105je
42*106j
43+107k
44,108l
45=109m
46.110n
47/111o
480112p
491113q
502114r
513115s
524116t
535117u
546118v
557119w
568120X
579121y
58:122z
59-123
61=125
62>126~
63?127DEL

La première chose que vous remarquerez est que les 32 premiers caractères sont le “ non imprimable ” personnages. Cela ne signifie pas que ces personnages sont si vilain que la censure ne leur permettra pas à imprimer - cela signifie qu'ils ne semblent pas symboles visibles que lorsqu'il est imprimé sur l'imprimante (ou sur la console, d'ailleurs). Beaucoup de ces caractères ne sont plus utilisés ou utilisés que dans des moyens obscurs.

Par exemple, le caractère 25 “ la fin du support ” a probablement été imprimé le dernier caractère avant la fin d'une bobine de bande magnétique. Ce fut une grosse affaire en 1963, mais aujourd'hui. . . pas tellement, l'utilisation du personnage est limité.

Les caractères commençant par 32 sont tous imprimable à l'exception de la dernière, 127, qui est le caractère Suppr.


» » » » Codage des caractères dans le code C ++