Les Systèmes de Numération
Octal, hexadécimal, BCD et autres systèmes pour représenter les nombres
Introduction aux Bases de Numération
Un système de numération (ou base) est une méthode pour représenter des nombres. La base détermine combien de chiffres différents sont utilisés.
Dans un système en base b, on utilise b chiffres différents (de 0 à b-1). Chaque position représente une puissance de la base.
Exemple : En base 10, on utilise 10 chiffres (0-9) et chaque position représente une puissance de 10 (unités, dizaines, centaines, etc.)
Récapitulatif des bases courantes
| Base | Nom | Chiffres utilisés | Suffixe | Usage principal |
|---|---|---|---|---|
| 2 | Binaire | 0, 1 | ₂ ou 0b | Électronique, informatique |
| 8 | Octal | 0, 1, 2, 3, 4, 5, 6, 7 | ₈ ou 0o | Permissions Unix, anciens systèmes |
| 10 | Décimal | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 | ₁₀ (souvent omis) | Usage courant |
| 16 | Hexadécimal | 0-9, A-F | ₁₆ ou 0x | Adresses mémoire, couleurs |
Le Système Octal (Base 8)
Le système octal utilise 8 chiffres : 0, 1, 2, 3, 4, 5, 6, 7
Chaque chiffre octal correspond exactement à 3 bits en binaire, ce qui simplifie grandement les conversions.
Correspondance Octal ↔ Binaire
| Octal | Binaire (3 bits) | Décimal |
|---|---|---|
| 0 | 000 | 0 |
| 1 | 001 | 1 |
| 2 | 010 | 2 |
| 3 | 011 | 3 |
| 4 | 100 | 4 |
| 5 | 101 | 5 |
| 6 | 110 | 6 |
| 7 | 111 | 7 |
Conversion Binaire → Octal
Méthode rapide
Grouper les bits par 3 en partant de la droite, puis convertir chaque groupe :
Grouper par 3 : 110 101 011
110101011₂ = 653₈
Applications de l’octal
🐧 Permissions Unix/Linux
Les droits d’accès aux fichiers sont souvent exprimés en octal :
- 7 (111) = lecture + écriture + exécution pour le propriétaire
- 5 (101) = lecture + exécution pour le groupe
- 5 (101) = lecture + exécution pour les autres
Le Système Hexadécimal (Base 16)
Le système hexadécimal utilise 16 symboles :
0 1 2 3 4 5 6 7 8 9 A B C D E F
Chaque chiffre hexadécimal correspond exactement à 4 bits (un nibble), ce qui permet de représenter un octet (8 bits) avec seulement 2 chiffres hexa.
Table de Correspondance Complète (0-255)
| Décimal | Hexadécimal | Binaire (8 bits) |
|---|---|---|
| 0 | 00 | 00000000 |
| 15 | 0F | 00001111 |
| 16 | 10 | 00010000 |
| 31 | 1F | 00011111 |
| 32 | 20 | 00100000 |
| 127 | 7F | 01111111 |
| 128 | 80 | 10000000 |
| 255 | FF | 11111111 |
Conversion Binaire ↔ Hexadécimal
Binaire → Hexa : Grouper par 4
Grouper par 4 : 0011 0101 1010 1111
11010110101111₂ = 35AF₁₆
Hexa → Binaire : Convertir chaque chiffre
2 = 0010 | F = 1111 | 8 = 1000 | A = 1010
Applications de l’hexadécimal
Adresses mémoire
Les adresses en informatique sont exprimées en hexadécimal :
0x7FFF2AC4 0xDEADBEEF
Plus compact que le binaire et plus lisible !
Couleurs RGB
Les couleurs web sont codées en hexadécimal (RR GG BB) :
#FF0000 = Rouge pur
#00FF00 = Vert pur
#0076A5 = Bleu F4HXN !
Adresses MAC en réseau
Les adresses MAC sont exprimées en hexa :
Chaque paire représente un octet (8 bits)
Conversions Entre Bases
Méthode Générale : Base quelconque → Décimal
Formule
Multiplier chaque chiffre par la puissance correspondante de la base :
Exemple 1 : 2A3₁₆ → Décimal
Exemple 2 : 157₈ → Décimal
Décimal → Base quelconque
💡 Méthode des divisions successives
Convertir 234₁₀ en hexadécimal :
Lire de bas en haut : EA₁₆
Vérification : 14×16 + 10 = 224 + 10 = 234 ✓
Tableau de Conversion Rapide
| Décimal | Binaire | Octal | Hexadécimal |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 255 | 11111111 | 377 | FF |
Le Code BCD (Binary Coded Decimal)
Le BCD code chaque chiffre décimal sur 4 bits. C’est un compromis entre binaire pur et décimal.
Chaque chiffre décimal (0-9) est représenté par son équivalent binaire sur 4 bits.
Attention : Les valeurs 1010 à 1111 (10-15) ne sont jamais utilisées en BCD !
Table BCD
| Décimal | BCD (4 bits) |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
Exemple : Coder 147 en BCD
Chaque chiffre séparément :
4 → 0100
7 → 0111
147₁₀ = 0001 0100 0111 (BCD)
147₁₀ en binaire = 10010011 (8 bits)
147₁₀ en BCD = 0001 0100 0111 (12 bits)
Le BCD utilise plus de bits mais simplifie l’affichage décimal !
Applications du BCD
Afficheurs 7 segments
Les décodeurs BCD vers 7 segments (comme le 7447) prennent directement une entrée BCD pour commander un afficheur.
Calculs financiers
Le BCD évite les erreurs d’arrondi en virgule flottante. Utilisé dans les systèmes bancaires et les calculatrices.
Afficheurs de fréquence
Les fréquencemètres et transceiveurs avec affichage numérique utilisent souvent du BCD pour commander les afficheurs LED ou LCD.
Le Code Gray
Le code Gray (ou code binaire réfléchi) est un système où deux valeurs consécutives ne diffèrent que d’un seul bit.
Élimine les erreurs de transition ! Quand un compteur passe de 3 à 4 en binaire, tous les bits changent (011→100). En Gray, un seul bit change.
Table de Conversion (4 bits)
| Décimal | Binaire | Code Gray | Bits changés |
|---|---|---|---|
| 0 | 0000 | 0000 | – |
| 1 | 0001 | 0001 | 1 |
| 2 | 0010 | 0011 | 1 |
| 3 | 0011 | 0010 | 1 |
| 4 | 0100 | 0110 | 1 |
| 5 | 0101 | 0111 | 1 |
| 6 | 0110 | 0101 | 1 |
| 7 | 0111 | 0100 | 1 |
| 8 | 1000 | 1100 | 1 |
Applications du code Gray
Encodeurs rotatifs
Les encodeurs de position utilisent le code Gray pour éviter les lectures erronées lors des transitions.
📊 Tableaux de Karnaugh
Les lignes et colonnes des tableaux de Karnaugh (simplification logique) utilisent l’ordre Gray pour faciliter le regroupement des cases adjacentes.
Conversion A/N
Certains convertisseurs analogique-numérique utilisent le Gray pour minimiser les erreurs pendant la conversion.
Représentation des Nombres Signés
Pour représenter des nombres négatifs en binaire, plusieurs méthodes existent :
1. Signe et Valeur Absolue
Le bit de poids fort indique le signe (0 = positif, 1 = négatif).
Sur 8 bits :
- 00101010 = +42
- 10101010 = -42
Problème : Deux représentations du zéro (+0 et -0) !
2. Complément à 1
Inverser tous les bits pour obtenir le négatif.
Exemple :
- +42 = 00101010
- -42 = 11010101 (tous les bits inversés)
Problème : Encore deux représentations du zéro !
3. Complément à 2 (méthode standard)
La méthode universellement utilisée en informatique !
- Prendre le binaire du nombre positif
- Inverser tous les bits (complément à 1)
- Ajouter 1
Exemple : -42 en complément à 2 sur 8 bits
-42 = 11010110 (complément à 2)
Plages de valeurs
| Nombre de bits | Plage signée (complément à 2) |
|---|---|
| 8 bits | -128 à +127 |
| 16 bits | -32 768 à +32 767 |
| 32 bits | -2 147 483 648 à +2 147 483 647 |
| 64 bits | -9 × 10¹⁸ à +9 × 10¹⁸ |
- Une seule représentation du zéro
- L’addition fonctionne de la même manière pour les positifs et négatifs
- Pas besoin de circuit séparé pour la soustraction
- Détection de dépassement simple
Nombres à Virgule
Virgule Fixe
Un nombre de bits est réservé pour la partie entière, le reste pour la partie décimale.
Format 8.8 (8 bits entiers, 8 bits décimaux)
Le nombre 42.25 serait représenté :
(42) (0.25)
Virgule Flottante (IEEE 754)
Format utilisé par tous les processeurs modernes.
- 1 bit : signe (0 = positif, 1 = négatif)
- 8 bits : exposant (polarisé de 127)
- 23 bits : mantisse (partie fractionnaire)
Valeurs spéciales
- Exposant = 0, Mantisse = 0 : Zéro (+0 ou -0)
- Exposant = 255, Mantisse = 0 : Infini (+∞ ou -∞)
- Exposant = 255, Mantisse ≠ 0 : NaN (Not a Number)
Les nombres comme 0.1 ou 0.3 ne peuvent pas être représentés exactement en virgule flottante binaire ! C’est pourquoi 0.1 + 0.2 ≠ 0.3 en informatique.
Utiliser le BCD pour les calculs financiers nécessitant une précision décimale exacte.
Applications Pratiques
Programmation
En C/C++ :
int decimal = 255; int hexa = 0xFF; // Préfixe 0x int octal = 0377; // Préfixe 0 int binaire = 0b11111111; // Préfixe 0b (C++14+)
Fréquences radio
Affichage LCD d’un transceiver :
La fréquence 14.250.000 Hz peut être stockée :
- En binaire : pour les calculs internes
- En BCD : pour l’affichage direct
- En hexa : pour les commandes CAT
Graphisme
Couleur 24 bits (True Color) :
FF = Rouge (255), 63 = Vert (99), 47 = Bleu (71)
Points à Retenir
- Octal : 8 chiffres, grouper par 3 bits, permissions Unix
- Hexadécimal : 16 symboles (0-F), grouper par 4 bits, adresses mémoire
- BCD : Chaque chiffre décimal sur 4 bits, afficheurs
- Code Gray : Un seul bit change entre valeurs consécutives
- Complément à 2 : Méthode standard pour les nombres signés
- L’hexadécimal est le plus utilisé en électronique et informatique
- Bien distinguer binaire pur et BCD
- Le code Gray évite les erreurs de transition
73 de F4HXN – Prochaine fiche : Les tableaux de Karnaugh ! 📡