ICS3U

Accueil > Logiciels du système >

📚 Représentation interne des données : les encodages binaires

Survol et attentes

Imaginez que tous les caractères dans votre livre, magazine ou blogue préféré sont remplacés par des codes numériques, un code unique par caractère. Ce serait assez dur à lire!

Imaginez maintenant que peut-être ces codes ne représentent PAS des lettres mais peut-être les données de couleur pour un pixel ou peut-être une valeur numérique ou peut-être une adresse en mémoire pour un fichier. C’est encore pire!

Comment faire sens de tout ça?

La mémoire et le stockage d’un ordinateur contiennent juste ces types de codes, mais les codes sont - en plus - en binaire! Plusieurs standards sont mis en place pour structurer ces informations et pour offrir des formats d’information communs. Il y a des opérations intégrées dans l’UAL ou disponibles comme algorithmes dans le système d’exploitation pour décoder ces informations correctement.

Définitions
Encodage
La conversion d’une valeur d’un type de données à un autre, p. ex. d’un caractère à un nombre ou d’un nombre à une couleur. Plusieurs encodages sont utilisés pour interpréter du binaire en données significatives.
ASCII
Acronyme pour American Standard Code for Information Interchange, un standard pour représenter des caractères en binaire avec un code de 7 bits (128 caractères). Au-delà du standard ASCII, il y a des encodages plus larges pour représenter des caractères de plusieurs langues, divers symboles et des émoticônes. Le standard Unicode est le plus universel, mais les standards ANSI et ISO sont aussi utilisés, notamment sur les systèmes Windows.
Nombre à virgule flottante
Un standard pour représenter des nombres décimaux en binaire, avec un bit pour le signe, un nombre de bits pour l’exposant et un nombre de bits pour la mantisse. Le standard IEEE 754 est le plus commun. Ce standard est implémenté directement dans l’unité d’arithmétique du processeur.
Hexadécimal
Une base numérique qui utilise 16 symboles (0-9 et a-f) pour représenter des valeurs en binaire de manière plus compacte et plus lisible pour les humains. Chaque symbole hexadécimal représente 4 bits. L’hexadécimal est souvent utilisé pour représenter des adresses mémoire, des couleurs RVB et des valeurs de configuration.
RVB
Acronyme pour Rouge, Vert, Bleu, un standard pour représenter des couleurs en binaire avec 3 octets (24 bits) pour chaque pixel. Chaque octet représente un niveau de couleur (0 à 255) pour chaque couleur primaire. Les couleurs RVB sont utilisées dans les écrans, les images et les vidéos.

Objectifs d’apprentissage

À la fin de cette leçon vous devrez être en mesure de :

Critères de succès

Les bases numériques

D’abord il faut réaliser que les valeurs dans un ordinateur sont toutes représentées en base 2 (avec seulement les nombres 0 et 1).

Toutes les bases numériques - décimal, binaire, hexadécimal, etc. - sont des systèmes de numération positionnels, où chaque position représente une puissance de la base.

  • La première position (à la droite) est la puissance 0, donnant toujours les unités.
  • La valeur à chaque position est un facteur à multiplier par la puissance de la base pour obtenir la valeur de la position. Par exemple, en décimal, la valeur 23 est décomposée comme suit :
1
2
3
4
23 
= 2 * 10^1 + 3 * 10^0 
= 2 * 10   + 3 * 1 
= 20       + 3

Comme les valeurs à base 10 (où chaque position représente la prochaine puissance de 10), les positions des bits dans les valeurs à base 2 représentent la prochaine puissance de 2.

Une autre base utile, rendant le binaire plus facile à digérer pour les humains, est l’hexadécimal, la base 16, où chaque position représente une puissance de 16. L’hexadécimal utilise un seul nombre pour chaque 4 bits. Par exemple, la valeur 1101 en binaire est équivalente à d (13) en hexadécimal.

Décimal (base 10)
Chiffres

0123456789

Préfixe conventionnel

Aucun. L’absence de préfixe indique que la valeur est en base 10.

Structure
Positions 3 2 1 0
Puissance 103 102 101 100
Valeur 1000 100 10 1
Nom Milliers Centaines Dizaines Unités
Exemple

4628 =

  • 4 milles + 6 cents + 2 dizaines + 8 unités
  • 4000 + 600 + 20 + 8
Binaire (base 2)
Chiffres

01

Préfixe conventionnel

0b ou 0B devant la valeur pour indiquer que la valeur est en base 2.

On peut aussi placer le souscript 2 après le chiffre sans préfixe, p. ex. 11012 est équivalent à 0b1101

Structure
Positions 3 2 1 0
Puissance 23 22 21 20
Valeur 8 4 2 1
Nom Huits Quatres Deux Unités
Exemple

0b1101 =

  • 1 huit + 1 quatre + 0 deux + 1 unité
  • 8 + 4 + 0 + 1
  • 1310
Hexadécimal (base 16)
Chiffres

0123456789abcdef

Préfixe conventionnel
  • 0x ou 0X
  • # devant les couleurs RVB en hexadécimal
  • souscript 16, p. ex. 10016 est équivalent à 0x100 (et représente la valeur décimale 25610).
Structure
Positions 3 2 1 0
Puissance 163 162 161 160
Valeur 4096 256 16 1
Nom Seize cube Seize carré Seizes Unités
Exemple

0x1f =

  • 1 seize + 15 unités
  • 16 + 15
  • 3110

Encodage binaire pour différents types de données

Type de donnée Exemple Représentation interne (Encodage)
Nombre entier 32, -12, 1000000 Base 2 : 8 à 32 bits (1 à 4 octets) pour la valeur numérique en binaire
Caractères 97 (‘a’), 50 (‘2’) ASCII : 7 bits faisant référence au caractère dans le tableau ASCII qui sont identifiés de 0 à 127; Unicode : plus universellement, un code de 8 à 32 bits (1 à 4 octets) pour représenter les caractères dans le tableau Unicode. Différents encodages sont possibles : UTF-8 (1 à 4 octets), UTF-16 (2 à 4 octets), UTF-32 (4 octets)
Nombres décimaux 3.14, 2.5, -45900.1134 IEEE 754 : 32 ou 64 bits pour spécifier un nombre à virgule flottante, avec 1 bit représentant le signe (-/+), 8 ou 11 bits représentant l’exposant et 23 ou 52 bits représentant la mantisse
Couleurs 24 bits RVB) rgb(255, 0, 0), #00ff00 RVB : 1 octet (8 bits) représentant 256 niveaux de rouge, 1 octet pour l’intensité du vert et 1 octet pour l’intensité du bleu. Avec 8 bits, la gamme d’intensités est de 0 à 255 en décimal ou de #00 à #ff en hexadécimal; RVBA : en ajoutant un quatrième octet (nommé “alpha”), on peut spécifier la transparence d’une couleur.

Exercices

📚 Tester la compréhension

Quiz de vérification sur la représentation interne des données

🛠️ Pratique

Encodages de base

Enrichissement - algorithmes pour convertir les bases