Sie sind auf Seite 1von 10

Ingénierie et Développement Durable

 Etude de dossier technique


Codage de l’information :  Activité pratique
 Travaux dirigés
Binaire, hexadécimal et ASCII  Cours

Aujourd’hui nos ordinateurs, téléphones et autres appareils numériques sont


capables de manipuler aussi bien des nombres et du texte que des images, de la
vidéo ou de la musique.
Mais comment représenter, au sein d’un système numérique qui ne comprend
que des 0 ou des 1, cette diversité des objets du monde réel ou virtuel ?
Quelles sont les techniques utilisées pour représenter numériquement les
grandeurs qui nous entourent ?

1. DEFINITIONS

1.1 Unité de codage


Les composants constituant un système informatique réagissent uniquement, de manière interne, à
des signaux « tout ou rien ». On représente les deux états stables ainsi définis par les symboles « 0 »
et « 1 » ou encore par « L » (Low) et « H » (High).

Le système de numération adaptée à la représentation de tels signaux est la base 2, on parle alors de
codage binaire.
L’unité de codage de l’information est un élément ne pouvant prendre que les valeurs 0 ou 1 ; le bit
(contraction de Binary Digit).
Par exemple :
Le nombre décimal 49 est pour l’ordinateur une suite de 0 ou de 1 : 11 0001
Le caractère ‘A’ est pour l’ordinateur une suite de 0 et de 1 : 0100 0001
Le nombre hexadécimal BAC (base 16) est pour l’ordinateur une suite de 0 et de 1 : 1011 1010 1100

1.2 Mots binaires

Une suite de 0 et de 1 porteuse d’une information (nombre, texte, image, etc.) est appelée mot binaire.

Dans un mot binaire, le bit situé le plus à gauche est le bit le plus significatif, MSb (Most Significant
Bit), celui situé le plus à droite est le bit le moins significatif, LSb (Less Significant Bit).

Exemple :

MSb LSb
1 1 1 0 1 1 0 1
Octet (Byte)

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 1


1.3 Format des mots binaires

Pour le traitement, le stockage de données, les échanges de données, les informations élémentaires
(bits) sont manipulées par groupes qui forment ainsi des mots binaires. La taille de ces mots est le plus
souvent un multiple de 8 = 23.
Le format des mots binaires utilisés pour les échanges de données est le mot de 8 bits appelé octet.

Exemples : (2 octets)
1111 0011
1010 1111
Remarque :
Un octet (en anglais byte) contient 8 bits.
Pour faciliter les manipulations, un octet peut être divisé en deux mots de 4 bits que l’on appelle des
quartets : celui situé à gauche est le quartet de poids fort, MSQ (Most Significant Quartet), et celui
situé à droite, le quartet de poids faible, LSQ (Less Significant Quartet).

Exemple :

MSQ LSQ
1 1 1 0 1 1 0 1
Quartet de poids fort Quartet de poids faible
Octet (Byte)

En dehors de ce format (octet, soit 28 combinaisons = 256, valeurs de 0 à 28-1= 255), des regroupements
plus importants sont couramment utilisés :
- le mot de 16 bits = 2 octets (word), (216 combinaisons= 65536, valeurs de 0 à 216-1 = 65535)
- le mot de 32 bits = 4 octets (double word), (232 combinaisons= 4294967296, valeurs
de 0 à 232-1= 4294967295)
- le mot de 64 bits = 8 octets (quad word). (264 combinaisons=18446744073709551616,
valeurs de 0 à 264-1= 18446744073709551615)
Exemples :

- Pour coder le jour du mois, il y a au maximum 31 jours. 31 < 255, un mot de 8 bits suffira.
- Pour coder le jour de l’année, il y a au maximum 366 jours. 366<65535, il faudra un mot de 16 bits.
- Pour coder l’année, nous sommes actuellement à 2020 années. 2020<65535, il faudra un mot
de 16 bits.

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 2


1.4 Les normes :

La capacité en octets des différents constituants tels que les circuits mémoires, les disques durs, les
vidéos, est souvent importante. Il devient donc indispensable d’utiliser des unités multiples de l’octet.

ko (kB) = kilo-octet (kiloByte) = 103 octets = 1000 octets


Mo (MB) = Méga-octet (MegaByte) = 106 octets = 1000 ko
Go (GB) = Giga-octet (GigaByte) = 109 octets = 1000 Mo
To (TB) = Téra-octet (TeraByte) = 1012 octets = 1000 Go

Exemples :

A partir de l’icône « Paramètres » et du menu « Stockage » de votre Smartphone ou de la tablette


tactile fournie, compléter le tableau ci-dessous :

MEMOIRE DE L’APPAREIL Description Valeur


Espace total Capacité totale de l’appareil
Espace de stockage minimal
Mémoire système requis pour exécuter le
système
Espace de stockage
Espace utilisé
actuellement utilisé
Quantité de données
stockées en mémoire cache
Données en cache
qui permet de lancer les
applications plus rapidement
Quantité utilisée pour un
Fichiers divers
stockage des fichiers divers Exemple :
Espace de stockage
Espace disponible
actuellement disponible

La quantité de données générée dans le monde est en pleine expansion et suit une loi quasi
exponentielle.

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 3


Dans les notations de quantité binaires « kilo », « méga », … sont utilisés pour exprimer des multiples
en puissances de 2, mais cet usage est contraire aux normes SI (Système International).

Malgré la norme internationale ci-dessous (CEI 60027-2) de décembre 1998, beaucoup de fabricants
mélangent (volontairement ou non) les deux systèmes. Lisez bien les publicités et les notices.

kio (kiB) = kibi-octet (kibiByte) = 210 octets = 1024 octets


Mio (MiB) = Mébi-octet (MebiByte) = 220 octets = 1024 ko
Gio (GiB) = Gibi-octet (GibiByte) = 230 octets = 1024 Mo
Tio (TiB) = Tébi-octet (TebiByte) = 240 octets = 1024 Go

(k, M, G, T, … = multiple du système international, b=bit, B=Byte, bi=binary)

1.5 Exercices :

Exercice 1 :
Lorsqu’un Smartphone est raccordé à un ordinateur, si vous effectuez un clic droit sur le
périphérique correspondant à « Android Phone », puis un clic sur Propriétés vous obtiendrez
une fenêtre de ce type :

Fig. 1 : Propriétés d’un Smartphone

Compléter les phrases suivantes :

La capacité totale de ce Smartphone est de 7,4 Gio, soit 7,4 x 230 octets.
Le volume du système de fichiers est de 7,9 GB, soit 7,9.109/230 = 7,35 Gio.
L’espace libre est de 3,1 Gio, soit 3,1 x 230 octets.

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 4


Exercice 2 :
A partir de l’extrait de la fiche technique d’un disque dur SSD (Solid State Drive), répondre aux
questions suivantes :

Donner sa capacité. Puis la convertir en Mio.


500 Go = 500.109 octets = 500.109/220 = 476837 Mio

Exercice 3 :

Un fournisseur d’accès Internet (FAI) vous annonce un débit descendant de 8 192 kibits/s.
Vous faites une mesure de débit réel et vous trouvez une moyenne de 3 280 kibits/s.

Quelle sera le temps théorique minimal de téléchargement d’une application de taille égale à 25 Mo ?

3 280 kibits/s = 3 280.210 bits/s = 3358720/8 octets/s = 419 840 octets/s

25 Mo = 25.106 octets;

25.106/419840 = 59,5 s

2. CODAGE

2.1 Convertir un nombre décimal en binaire

Vous pouvez utiliser votre calculatrice ou votre application « convertisseur de


bases » de l’AP2 séquence 1 avec votre smartphone Android. Mais il important de
savoir-faire l’opération manuellement.

Notation :
Des indices ou un préfixe peuvent être utilisés pour les nombres binaires : 110011(2), 1101(BIN),
%111000, 0b110101.

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 5


Pour coder un nombre décimal en binaire, on peut utiliser plusieurs méthodes.
Exemple : codage des nombres décimaux 25(10) et 75(10) en binaire.

1ère méthode : la division successive par 2


On peut l’obtenir par divisions successives par 2 du nombre. Le nombre en base 2 est alors constitué
par le reste des divisions, la lecture s’effectuant du dernier reste vers le premier.

Exemple 1 : conversion du nombre décimal 25 en binaire

25 2
1 12 2
0 6 2
0 3 2
Sens de 1 1
lecture
110012 = 2510

Bit de poids Bit de poids


fort faible

2ème méthode : recherche du terme 2n le plus grand, inférieur au nombre Nx (le tableau)

Exemple 2 : conversion du nombre décimal 25 en binaire à partir du site « Cours Tech Info »
http://www.courstechinfo.be/MathInfo/PoidsDesBits.html

Exemple 3 : conversion du nombre décimal 75 en binaire (le tableau)

Poids 27 26 25 24 23 22 21 20
Nombre Reste 128 64 32 16 8 4 2 1
75-64 11 1
11-8 3 1
3-2 1 1
1-1 0 1
Résultats = 0 1 0 0 1 0 1 1

2.2 Simplifier l’écriture du binaire

Le binaire, s’il est très représentatif du codage interne des machines, reste très délicat et fastidieux à
manipuler. Les programmeurs ont très vite ressenti la nécessité d’utiliser une représentation plus
concise des nombres binaires.

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 6


Imaginons de représenter chaque quartet binaire par un unique symbole. Un quartet permettant de
coder 16 valeurs (soit de 0 à 15). Il faut donc trouver une base de représentation disposant de 16
symboles (0 à 9 et A à F) : il s’agit de la base 16 (appelée hexadécimale).

De plus, si l’on souhaite passer de la base 10 à la base 16, il est très facile de faire une conversion de la
base 10 à la base 2 puis de la base 2 vers la base 16. (cf. paragraphe : 2.2.3)

Exemple : conversion du nombre décimal 75 en hexadécimal

7510 = 010010112 = 4B16

Notation :
Des indices ou un préfixe peuvent être utilisés pour les nombres hexadécimaux : 15(16), 23(HEX), 0x55F,
$AF4, &h38, #44B.

Remarques :
Le préfixe 0x est utilisé dans le langage C, C++, Python et JAVA ; le $ est utilisé dans le langage Pascal ;
le &h dans le langage Basic et le # dans le langage HTML.
Une autre écriture courante est l’ajout du suffixe « h » à la fin du nombre (F15Ah par exemple).

Dans le système hexadécimal les dix premiers symboles correspondent à ceux utilisés dans le système
décimal : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9, et les six derniers correspondent aux six premières lettres de
l'alphabet latin : A, B, C, D, E et F, lesquelles valent respectivement 10, 11, 12, 13, 14 et 15 en base 10.
Soit la table de correspondance :

Base décimale Base binaire Base hexadécimale


0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

2.2.1 Conversion de la base binaire en base hexadécimale

16 étant égal à 24, la conversion consiste tout simplement à regrouper les termes du nombre en base 2 par
groupes de 4 chiffres en commençant par la droite, puis à convertir chaque groupe en écriture hexadécimale.
On peut utiliser la table de correspondance pour cette dernière conversion.

Exemple : soit le nombre binaire N = 11101011 pourra être noté 1110 1011
N = $ EB = 0xEB
2.2.2 Conversion de la base hexadécimale en base binaire
La conversion s’obtient en remplaçant directement chaque chiffre hexadécimal du nombre en sa
représentation binaire. On utilise aussi la table de correspondance pour cette conversion.

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 7


Exemple : soit le nombre hexadécimal N = 9F2

N = 1001 1111 0010


2.2.3 Conversion de la base décimale en base hexadécimale
Pour coder un nombre décimal en hexadécimal, on peut utiliser plusieurs méthodes et entre autres
passer par le binaire.

Exemple : C7(16) est un nombre en base 16 que l’on peut aussi noter avec le préfixe 0x :
Soit : OxC7 en binaire 0x C 7
% 1 1 0 0 0 1 1 1
C7(16) En décimal :
0x C 7
% 1 1 0 0 0 1 1 1
Poids 27 26 25 24 23 22 21 20
128 64 0 0 0 4 2 1
Résultat 199

N = &125 = % 1111101 = $ 7D

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 8


2.3 Le codage des caractères

Une grosse part des informations manipulées par les systèmes numériques concerne le langage parlé
ou écrit matérialisé sous formes de textes, eux-mêmes constitués de caractères typographiques.
Comment coder universellement ces caractères et permettre ainsi l’échange d’informations entre
machines et/ou utilisateurs, quelle que soit la langue utilisée ?

Remarque :
Le morse inventé par Samuel Morse en 1844 est le premier codage à permettre une communication
orientée caractère à longue distance. Ce code est composé de points et de tirets (une sorte de codage
binaire).
Exemple : SOS : • • • - - - • • •

Le jeu de caractères codés ASCII (American Standard Code for Information Interchange) ou code
américain normalisé pour l’échange d’informations, inventé par Bob BERNER en 1961, est la norme de
codage de caractères en informatique la plus connue, la plus ancienne et la plus largement compatible.

Le code ASCII est un code sur 7 bits (valeurs 0 à 127), il permet de définir :
- des caractères imprimables universels : lettres minuscules et majuscules, chiffres, symboles, …
- des codes de contrôle non imprimables : indicateur de saut de ligne, de fin de texte, codes de
contrôle de périphériques, …
2.3.1 Table de référence ASCII

Colonnes Bit 6 0 0 0 0 1 1 1 1
Bit 5 0 0 1 1 0 0 1 1
Lignes Bit 4 0 1 0 1 0 1 0 1
00 10 20 30 40 50 60 70
Bit 3 Bit 2 Bit 1 Bit 0 Hexa.
Déci 0 16 32 48 64 80 96 112
0 0 0 0 0 +0 NUL DLE SP 0 @ P ` p
0 0 0 1 1 +1 SOH DC1 ! 1 A Q a q
0 0 1 0 2 +2 STX DC2 " 2 B R b r
0 0 1 1 3 +3 ETX DC3 # 3 C S c s
0 1 0 0 4 +4 EOT DC4 $ 4 D T d t
0 1 0 1 5 +5 ENQ NAK % 5 E U e u
0 1 1 0 6 +6 ACK SYN & 6 F V f v
0 1 1 1 7 +7 BEL ETB ' 7 G W g w
1 0 0 0 8 +8 BS CAN ( 8 H X h x
1 0 0 1 9 +9 HT EM ) 9 I Y i y
1 0 1 0 A +10 LF SUB * : J Z j z
1 0 1 1 B +11 VT ESC + ; K [ k {
1 1 0 0 C +12 FF FS , < L \ l |
1 1 0 1 D +13 CR GS - = M ] m }
1 1 1 0 E +14 SO RS . > N ^ n ~
1 1 1 1 F +15 SI US / ? O _ o DEL

Lecture de la table : le code ASCII du caractère L est égal à 64+12 =76 en décimal, soit 10011002
en binaire.
Remarques :
- Sept bits suffisent pour représenter un caractère codé en ASCII. Toutefois, les ordinateurs
travaillant presque tous sur un multiple de huit bits (multiple d'un octet), chaque caractère
codé en ASCII peu prendre le format d’un octet dont le 8ème bit est à 0.
- Il existe une table ASCII dite « étendue ou élargie » sur 8 bits (http://www.ascii-code.com/).

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 9


- En 1991, l’UNICODE est apparu afin de coder tout caractère sur 16 bits ou jusqu’à 24 bits
(sur 2 octets pour le plan multilingue de base et jusqu’à 3 octets pour les plans
complémentaires) de n’importe quel système d’écriture. Chaque caractère procède un point
de code (A : U+0041).
- En 1996, afin de réduire l’encombrement des pages Web, création du processus d’encodage
UTF-8 (Unicode Transformation Format- 8 bits). C’est un procédé qui transforme chaque point
de code Unicode en une suite d’un à quatre d’octets. Il permet de coder les caractères
correspondant à la table de référence ASCII sur 8 bits (A : 0x41).
- Aujourd’hui plus de 93% des sites Web utilisent l’UTF-8.

Graphe indiquant l'utilisation d'UTF-8 (bleu clair) dépassant les principaux autres codages
de caractères de texte sur le Web. (Source :https://fr.wikipedia.org/wiki/UTF-8)

ASCII (8bis)
Latin 1 ou
Europe
occidentale)

2.3.2 Exercice

À l’aide de la table ASCII de la page précédente :

Décrypter la chaîne ASCII ci-dessous représentée sous la forme d’une suite d’octets :

0101 0011 0101 0100 0100 1001 0011 0010 0100 0100

Retrouver la chaîne ASCII sous la forme décimale du texte ci-dessous.

Specialite I2D

83 112

Spécialité I2D Information 1STI2D – Séquence 3 – Codage de l’information Page 10