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 :
- reconnaître des valeurs en différentes bases numériques : binaire, décimal et hexadécimal
- décrire la structure interne de types de données comme les nombres entiers et les caractères
Critères de succès
- Je peux identifier si une valeur est binaire ou hexadécimal connaissant la valeur décimal représentée.
- Je peux décrire la représentation interne de différents types de données comme les nombres entiers, les caractères et les couleurs RVB
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 :
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
0xou0X#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