Représentation des entiers (naturels)
En informatique comme dans de nombreux domaines, la manipulation des nombres (ici entiers naturels) est essentielle.
Pour les représenter, un ordinateur ne manipule pas directement les chiffres de 0 à 9.
En effet, pour fonctionner, il utilise des circuits (logiques) d'électroniques. Ces circuits ne disposent que de deux états : soit le courant passe, soit il est bloqué.
Nous représentons ces états par les valeurs 0 ou 1. C'est l'objet de base de l'informatique : le bit.
0 et 1 sont alors les chiffres du binaire.
Principes de l'écriture décimale d'un nombre⚓︎
L'écriture décimale (celle des humains, avec 10 doigts de mains) utilise les chiffres de 0 à 9. Pour représenter une quantité, un nombre \(n\). Nous regroupons les unités en paquets de 10, puis les paquets de 10 en 10 paquets de 10 (les centaines) et ainsi de suite.
Par exemple, le nombre 253 en base 10 représente : - 2 centaines (2 × 100), - 5 dizaines (5 × 10), - 3 unités (3 × 1).
Numération à base \(a\)⚓︎
Le principe du décimal se retrouve dans toutes les numérations à base. Les unités sont regroupées en paquet de a. Puis en paquets de \(a²\), \(a³\)...
Le binaire n'échappe pas à cette règle.
Numération binaire⚓︎
Le nombre \(1011_2\) possède des unités, des \(deuzaines\), \(quatraines\) et \(huitaines\). (ces derniers termes ne sont pas
Le nombre binaire \(1011_2\) correspond à : - 1 × \(2^3\) = 8 - 0 × \(2^2\) = 0 - 1 × \(2^1\) = 2 - 1 × \(2^0\) = 1
Soit : \(8 + 0 + 2 + 1 = 11_{10}\)
Exemple : Représentation binaire de 219⚓︎
Objectif :⚓︎
Trouver la représentation binaire de 219 en utilisant la méthode des divisions successives par 2.
Étapes :⚓︎
On divise successivement le nombre par 2, en notant le quotient et le reste à chaque étape.
On s'arrête lorsque le quotient est égal à 0.
| Division | Quotient | Reste |
|---|---|---|
| 219 ÷ 2 | 109 | 1 |
| 109 ÷ 2 | 54 | 1 |
| 54 ÷ 2 | 27 | 0 |
| 27 ÷ 2 | 13 | 1 |
| 13 ÷ 2 | 6 | 1 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| 1 ÷ 2 | 0 | 1 |
Résultat :⚓︎
On lit les restes de bas en haut :
219 en binaire = 11011011₂
✔️ Vérification⚓︎
On peut vérifier ce résultat en décomposant \(11011011_2\) :
- \(1 × 2^7\) = 128
- \(1 × 2^6\) = 64
- \(0 × 2^5\) = 0
- \(1 × 2^4\) = 16
- \(1 × 2^3\) = 8
- \(0 × 2^2\) = 0
- \(1 × 2^1\) = 2
- \(1 × 2^0\) = 1
Total : 128 + 64 + 0 + 16 + 8 + 0 + 2 + 1 = \(219_{10}\)
Conversion de \(11010111_2\) en décimal⚓︎
Pour convertir un nombre binaire en décimal, on effectue une somme pondérée : chaque chiffre binaire (bit) est multiplié par une puissance de 2, en partant de la droite (bit de poids faible) vers la gauche (bit de poids fort).
Voici les étapes pour le nombre binaire \(11010111_2\) :
| Position (puissance de 2) | \(2^7\) | \(2^6\) | \(2^5\) | \(2^4\) | \(2^3\) | \(2^2\) | \(2^1\) | \(2^0\) |
|---|---|---|---|---|---|---|---|---|
| Valeur binaire | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
| Poids décimal | 128 | 64 | 0 | 16 | 0 | 4 | 2 | 1 |
Calcul de la somme :⚓︎
Résultat :⚓︎
\(11010111_2 = 215_{10}\)
Résumé des conversions binaire <-> décimal⚓︎
Le système binaire repose sur les mêmes principes que notre système décimal, mais en utilisant uniquement deux chiffres : 0 et 1.
Grâce à la méthode des divisions successives, on peut convertir n'importe quel entier naturel en binaire.
Grâce à la méthode des sommes pondérées, on peut convertir n'importe quel nombre enrtier écrit en binaire en son écriture décimale.
La numération hexadécimale⚓︎
La numération hexadécimale (ou base 16) est un système de numération positionnelle utilisant 16 symboles : les chiffres de 0 à 9 et les lettres de A à F (ou a à f), qui représentent respectivement les valeurs de 10 à 15. Elle est couramment utilisée en informatique, notamment pour représenter des adresses mémoire, des couleurs en HTML/CSS ou des octets en binaire de manière compacte.
Conversion hexadécimal → décimal⚓︎
Chaque chiffre d’un nombre hexadécimal représente une puissance de 16, selon sa position (comme la base 10 avec les puissances de 10).
Formule générale :
0xAB = A×16¹ + B×16⁰
Exemple :
0x2F = 2×16 + 15 = 32 + 15 = 47
0x1A3 = 1×256 + 10×16 + 3 = 256 + 160 + 3 = 419
2. Conversion décimal → hexadécimal (sur un octet)⚓︎
Un octet peut représenter 256 valeurs (de 0 à 255). Pour convertir un entier décimal compris dans cet intervalle en hexadécimal :
Méthode :
-
Diviser le nombre par 16.
-
Le quotient donne le chiffre des 16¹ .
-
Le reste donne le chiffre des 16⁰ (unité).
Exemple :
Décimal : 197
197 ÷ 16 = 12 reste 5
→ 12 = C, 5 = 5
→ Hexa = 0xC5
3. Conversions hexadécimal ↔ binaire (pour un octet)⚓︎
Un chiffre hexadécimal représente exactement 4 bits (demi-octet). Un octet (8 bits) se convertit donc directement en 2 chiffres hexadécimaux.
Il suffit de convertir chaque chiffre hexadécimal en 4 bits :
10101111 → 1010 1111 → A F → 0xAF
Table de correspondance rapide :
| Hexa | Binaire |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
| A | 1010 |
| B | 1011 |
| C | 1100 |
| D | 1101 |
| E | 1110 |
| F | 1111 |
Remarque : En informatique, le préfixe 0x est souvent utilisé pour indiquer qu’un nombre est en hexadécimal, le préfixe 0b pour indiquer le que le nombre est en binaire. Ainsi OxE7 = 0b11100111 = 231.