R.8 · L'adressage IPv4
Le binaire et l'hexadécimal sans douleur
Leçon théorique · questionnaire de validation · gratuit, dans le navigateur
Une adresse IPv4, un masque, une adresse MAC ou IPv6 : tout cela, ce sont des nombres binaires écrits autrement. Savoir passer du décimal au binaire et à l'hexadécimal en quelques secondes, de tête, rend évident ce qui paraît magique : pourquoi un /26 s'arrête à .63, pourquoi un masque vaut 255.255.255.224, pourquoi une adresse MAC compte 12 caractères. Cette leçon vous donne les méthodes, sans calculatrice.
Ce que vous saurez à la fin : convertir un octet entre décimal, binaire et hexadécimal, lire un masque bit à bit, et repérer les valeurs qui reviennent sans cesse en réseau.
1. Le binaire : des bits qui valent double
En décimal, chaque chiffre vaut dix fois plus que celui de droite. En binaire, il n'y a que deux chiffres (0 et 1), et chaque bit vaut deux fois plus que celui de droite. Un octet, 8 bits, ressemble à ceci :
| Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Valeur | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Apprenez cette ligne par cœur : tout le reste en découle. Un octet va de 00000000 (0) à 11111111 (128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255). C'est pour cela qu'aucun nombre d'une adresse IPv4 ne dépasse 255.
2. Du binaire au décimal : additionner
On additionne les valeurs des bits à 1 :
1 1 0 0 0 0 0 0 = 128 + 64 = 192
1 0 1 0 1 0 0 0 = 128 + 32 + 8 = 168
0 0 0 0 1 0 1 0 = 8 + 2 = 10
3. Du décimal au binaire : soustraire
On part de 128 et l'on descend : si la valeur tient dans ce qui reste, on met un 1 et on la soustrait ; sinon, un 0.
200 : 200 - 128 = 72 → 1
72 - 64 = 8 → 1
8 < 32 → 0
8 < 16 → 0
8 - 8 = 0 → 1
0 → 0 0 0
200 = 1 1 0 0 1 0 0 0
4. Les masques : des 1 à gauche, des 0 à droite
Un masque, c'est une suite de 1 (la partie réseau) suivie de 0 (la partie hôte). Il n'y a donc que neuf valeurs possibles pour un octet de masque, qu'il faut connaître :
| Bits à 1 | Binaire | Décimal |
|---|---|---|
| 0 | 00000000 |
0 |
| 1 | 10000000 |
128 |
| 2 | 11000000 |
192 |
| 3 | 11100000 |
224 |
| 4 | 11110000 |
240 |
| 5 | 11111000 |
248 |
| 6 | 11111100 |
252 |
| 7 | 11111110 |
254 |
| 8 | 11111111 |
255 |
Un /26 = 26 bits à 1 = trois octets pleins (24) et 2 bits dans le dernier : 255.255.255.192. Un /20 = deux octets pleins, puis 4 bits : 255.255.240.0.
5. Le ET logique : comment un poste trouve son réseau
Pour savoir si une destination est dans son réseau, un poste fait un ET bit à bit entre l'adresse et le masque : 1 ET 1 = 1, tout le reste = 0. Le résultat est l'adresse du réseau.
Adresse 192.168.10.77 → dernier octet 0 1 0 0 1 1 0 1 (77)
Masque /26 → dernier octet 1 1 0 0 0 0 0 0 (192)
ET 0 1 0 0 0 0 0 0 (64)
Réseau 192.168.10.64/26
Le poste fait le même calcul avec l'adresse de destination : si le résultat est identique, la destination est dans son réseau (on l'atteint directement, après ARP) ; sinon, on passe par la passerelle.
6. L'hexadécimal : 4 bits par caractère
L'hexadécimal (base 16) utilise les chiffres de 0 à 9 puis les lettres a (10) à f (15). Un caractère hexadécimal représente exactement 4 bits (un quartet), un octet s'écrit donc avec deux caractères :
| Décimal | Binaire | Hexa | Décimal | Binaire | Hexa | |
|---|---|---|---|---|---|---|
| 0 | 0000 |
0 | 8 | 1000 |
8 | |
| 1 | 0001 |
1 | 9 | 1001 |
9 | |
| 2 | 0010 |
2 | 10 | 1010 |
a | |
| 3 | 0011 |
3 | 11 | 1011 |
b | |
| 4 | 0100 |
4 | 12 | 1100 |
c | |
| 5 | 0101 |
5 | 13 | 1101 |
d | |
| 6 | 0110 |
6 | 14 | 1110 |
e | |
| 7 | 0111 |
7 | 15 | 1111 |
f |
Pour convertir un octet, on le coupe en deux quartets : 11000000 → 1100 0000 → c0 (192). 10101000 → 1010 1000 → a8 (168).
L'hexadécimal est partout : les adresses MAC (5e:a8:a1:65:a7:18, 6 octets = 12 caractères), les adresses IPv6 (2001:db8::1), les types de trames (0x0800 pour IPv4, 0x8100 pour 802.1Q), et l'identifiant de pont du Spanning Tree (8000.… = priorité 32768).
7. Retenir
| À connaître par cœur | |
|---|---|
| Valeurs des bits d'un octet | 128, 64, 32, 16, 8, 4, 2, 1 |
| Octets de masque possibles | 0, 128, 192, 224, 240, 248, 252, 254, 255 |
| Un caractère hexadécimal | 4 bits (0 à f) |
| Un octet | 8 bits, 2 caractères hexadécimaux, de 0 à 255 |