Accueil > Logiciels du système >
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.
À la fin de cette leçon vous devrez être en mesure de :
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.
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.
0123456789
Aucun. L’absence de préfixe indique que la valeur est en base 10.
Positions | … | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|
Puissance | … | 103 | 102 | 101 | 100 |
Valeur | … | 1000 | 100 | 10 | 1 |
Nom | … | Milliers | Centaines | Dizaines | Unités |
4628
=
01
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
Positions | … | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|
Puissance | … | 23 | 22 | 21 | 20 |
Valeur | … | 8 | 4 | 2 | 1 |
Nom | … | Huits | Quatres | Deux | Unités |
0b1101
=
0123456789abcdef
0x
ou 0X
#
devant les couleurs RVB en hexadécimalPositions | … | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|
Puissance | … | 163 | 162 | 161 | 160 |
Valeur | … | 4096 | 256 | 16 | 1 |
Nom | … | Seize cube | Seize carré | Seizes | Unités |
0x1f
=
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. |
Quiz de vérification sur la représentation interne des données