La table ASCII utilise des nombres pour représenter les chiffres, les lettres et les symboles courants de l’alphabet anglais. ASCII est l’abréviation de American Standard Code for Information Interchange (code standard américain pour l’échange d’informations).
Le mot a été utilisé pour la première fois par l’ANSI (American National Standards Institute) en 1973 pour répondre à un besoin dans ce domaine. À quoi ressemble la table ASCII et comment l’utiliser ?
Qu’est-ce qu’une table ASCII et que contient-elle ?
ASCII est un système de codage de caractères qui facilite la communication informatique de base. Il fournit une norme pour la représentation du texte, permettant aux ordinateurs de reconnaître et d’interpréter les valeurs ASCII de manière universelle.
Chaque lettre, chiffre et symbole que l’ASCII peut représenter a une valeur unique. Par exemple, si vous examinez le tableau ASCII ci-dessous, vous verrez que les valeurs ASCII en majuscules commencent à 65, la lettre A majuscule. De même, les valeurs ASCII en minuscules commencent à 97, la lettre a minuscule.
Ces valeurs servent de représentations numériques des caractères, ce qui facilite la conversion entre les nombres et le texte.
Caractère |
ASCII |
Caractère |
ASCII |
Caractère |
ASCII |
Caractère |
ASCII |
Caractère |
ASCII |
Caractère |
ASCII |
Caractère |
ASCII |
Caractère |
ASCII |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 |
NUL |
16 |
DEL |
32 |
SP |
48 |
0 |
64 |
@ |
80 |
P |
96 |
` |
112 |
p |
1 |
SOH |
17 |
DC1 |
33 |
! |
49 |
1 |
65 |
A |
81 |
Q |
97 |
a |
113 |
q |
2 |
STX |
18 |
DC2 |
34 |
« |
50 |
2 |
66 |
B |
82 |
R |
98 |
b |
114 |
r |
3 |
ETX |
19 |
DC3 |
35 |
# |
51 |
3 |
67 |
C |
83 |
S |
99 |
c |
115 |
s |
4 |
EOT |
20 |
DC4 |
36 |
$ |
52 |
4 |
68 |
D |
84 |
T |
100 |
d |
116 |
t |
5 |
ENQ |
21 |
NAK |
37 |
% |
53 |
5 |
69 |
E |
85 |
U |
101 |
e |
117 |
u |
6 |
ACK |
22 |
SYN |
38 |
& ; |
54 |
6 |
70 |
F |
86 |
V |
102 |
f |
118 |
v |
7 |
BEL |
23 |
ETB |
39 |
‘ |
55 |
7 |
71 |
G |
87 |
W |
103 |
g |
119 |
w |
8 |
BS |
24 |
CAN |
40 |
( |
56 |
8 |
72 |
H |
88 |
X |
104 |
h |
120 |
x |
9 |
HT |
25 |
EM |
41 |
) |
57 |
9 |
73 |
I |
89 |
Y |
105 |
i |
121 |
y |
10 |
LF |
26 |
SUB |
42 |
* |
58 |
: |
74 |
J |
90 |
Z |
106 |
j |
122 |
z |
11 |
VT |
27 |
ESC |
43 |
+ |
59 |
; |
75 |
K |
91 |
[ |
107 |
k |
123 |
{ |
12 |
FF |
28 |
FS |
44 |
, |
60 |
< |
76 |
L |
92 |
\ |
108 |
l |
124 |
| |
13 |
CR |
29 |
GS |
45 |
– |
61 |
= |
77 |
M |
93 |
] |
109 |
m |
125 |
} |
14 |
SO |
30 |
RS |
46 |
. |
62 |
> ; |
78 |
N |
94 |
^ |
110 |
n |
126 |
~ |
15 |
SI |
31 |
ÉTATS-UNIS |
47 |
/ |
63 |
? |
79 |
O |
95 |
_ |
111 |
o |
127 |
DEL |
Comment créer votre propre table ASCII avec Bash
La table ASCII contient tellement de valeurs qu’il peut être difficile de les mémoriser ou de prendre des notes. Pour référence, vous pouvez voir toutes les valeurs ASCII avec un peu de code dans le langage de programmation de votre choix, y compris un script shell.
Dans le tableau ASCII ci-dessus, la valeur 65 correspond à la lettre A et la valeur 90 à la lettre Z. Au lieu de calculer manuellement toutes les valeurs intermédiaires, vous pouvez itérer sur ces valeurs et imprimer les caractères correspondants. Comme la plupart des autres langages, les scripts de l’interpréteur de commandes Bash vous permettent d’utiliser une balise pour boucle pour répéter une ou plusieurs instructions un certain nombre de fois.
À l’aide de ces informations, essayez d’écrire un programme Bash qui imprime toutes les valeurs allant de 33 à 126 :
#!/bin/bash
echo "ASCII Table"
echo ""
for ((i=33; i<=126; i++))
do
char=$(printf "\\x$(printf '%02x' $i)")
printf "%-10d%-10s" $i "$char"
if (((i+1) % 4 == 0))
then
printf "\n"
fi
done
Ce script Bash attribue toutes les valeurs comprises entre 33 et 126 à un fichier char et l’affiche à l’écran. Enregistrez ce script Bash dans un fichier nommé myASCII.sh et l’exécuter avec la commande suivante et examiner le résultat.
bash myASCII.sh
Vous devriez voir un tableau utile montrant les caractères ASCII avec leurs valeurs décimales :
Comment filtrer la table ASCII
Un script Bash ne se contente pas d’afficher les valeurs ASCII. Vous pouvez inspecter la valeur ASCII de caractères individuels et, dans l’exemple suivant, les utiliser pour filtrer du texte.
Par exemple, essayons de supprimer la lettre E dans le mot-clé MAKEUSEOF en utilisant Bash avec le filtrage ASCII. Vous pouvez utiliser la table de recherche pour confirmer la valeur ASCII de « E » : 69.
#!/bin/bash
original_text="MAKEUSEOF"
filtered_text=""
original_text_ascii=""
filtered_text_ascii=""
for ((i=0; i<${#original_text}; i++))
do
char="${original_text:i:1}"
char_ascii=$(printf "%d" "'$char'")
if [[ "$(printf "%d" "'$char")" != "69" ]]
then
filtered_text+="$char"
filtered_text_ascii+=" $char_ascii"
fi
original_text_ascii+=" $char_ascii"
done
echo "Original text: $original_text (ASCII: $original_text_ascii)"
echo "ASCII equivalent of the letter E: $(printf "%d" "'E'")"
echo "Filtered text: $filtered_text (ASCII: $filtered_text_ascii)"
Dans ce script, la variable d’entrée est le mot MAKEUSEOF. Le script utilise une variable, filtered_text, pour obtenir le résultat souhaité, qui contient tout sauf la lettre « E ». Les pour parcourt chaque caractère du texte saisi.
Pour voir le résultat, copiez ce code dans un fichier nommé monFiltre.sh et exécutez bash myFilter.sh.
Conversion des majuscules en minuscules dans Bash à l’aide de la table ASCII
Vous pouvez également convertir les majuscules en minuscules avec Bash en utilisant la table ASCII. En examinant la table ASCII de 7 bits, vous constaterez que la différence entre les valeurs majuscules et minuscules des mêmes lettres est toujours de 32. À partir de là, la logique d’un programme capable de convertir un mot en majuscules en minuscules est simple.
Par exemple, le A majuscule a une valeur de 65, tandis que le a minuscule a une valeur de 97. En tirant parti de cela, vous pouvez écrire un extrait de code comme celui-ci :
#!/bin/bash
read -p "Enter a text: " input
converted_text=""
for ((i=0; i<${#input}; i++))
do
char="${input:i:1}"
char_ascii=$(printf "%d" "'$char'")
if [[ $char_ascii -eq 32 ]]
then
echo "Invalid character: space"
elif [[ $char_ascii -ge 65 && $char_ascii -le 90 ]]
then
char_ascii=$((char_ascii + 32))
converted_text+=$(printf "\\$(printf '%03o' "$char_ascii")")
elif [[ $char_ascii -ge 97 && $char_ascii -le 127 ]]
then
converted_text+="$char"
else
echo "Invalid character: $char"
fi
done
echo "Converted text: $converted_text"
Ce programme ajoute 32 à la valeur ASCII de chaque lettre majuscule qu’il lit pour obtenir la lettre minuscule correspondante. Pour l’essayer, copiez ce code dans un fichier appelé toLowercase.sh et l’exécuter avec la commande bash toLowercase.sh commande.
La table ASCII me convient-elle ?
La table ASCII est un outil précieux pour tous ceux qui travaillent avec des données textuelles ou des langages de programmation. Elle offre une représentation standard des caractères, des nombres et des symboles que les ordinateurs comprennent universellement. Que vous soyez un programmeur, un analyste de données ou simplement quelqu’un qui travaille avec des informations textuelles, la table ASCII a de nombreuses utilités.
Cela ouvre des possibilités pour des tâches telles que la validation des données, la manipulation de texte et les opérations de codage/décodage. En vous référant à la table ASCII, vous pouvez rapidement déterminer la valeur ASCII d’un caractère ou convertir des valeurs numériques en leurs représentations textuelles. Elle sert de base à la communication et à l’interopérabilité dans divers domaines, ce qui en fait une référence essentielle pour la programmation liée au texte.