En informatique en général, et particulièrement en ce qui concerne le réseau, tout est organisé autour d’un système binaire.
Le principe est simple : oui ou non, 1 ou 0, du courant ou pas, présence de magnétisme ou pas...
Le système numérique binaire, utilisé entre autre pour les adresses IP (Internet Protocol), fonctionne de la même manière. Les chiffres sont soit 0 soit 1.
Ainsi, la fraction supérieure n’est plus 10 (9+1) mais 2 (1+1). On compte donc non plus en puissances de 10 (10, 100, 1000) mais en puissances de 2 (2, 4, 8...).
On dit alors que le monde se divise en 10 catégories : ceux qui savent compter en binaire et ceux qui ne savent pas.
(10)2 = (2)10
"10" en base 2 (binaire) = "2" en base 10 (décimal)
Le bit (le chiffre, l’élément binaire le plus petit qu’on puisse reconnaître) le plus à droite est le plus faible, le plus petit, comme pour les chiffres décimaux. Il correspond à 2 puissance 0, soit 1.
Celui situé juste avant est 2 puissance 1, soit 2, puis celui d’avant 2 puissance 2, soit 4...et ainsi de suite.
Ainsi :
bit | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
---|---|---|---|---|---|---|---|---|
puissance de 2 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
valeur puissance de 2 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
Ainsi, on peut coder sur 8 bits (un octet) un nombre de 0 à 255.
Pour les systèmes octal et hexadécimal (tout comme pour le système décimal, d’ailleurs), c’est le même principe.
En octal, on compte de 0 à 7, en puissances de 8.
En hexadécimal, de 0 à 15. Pour rester sur un seul caractère, on utilisera des lettres au delà de 9. A = 10, B = 11, C = 12, D = 13, E = 14 et F = 15.
Le système hexadécimal est assez utilisé en informatique, car il permet de raccourcir une notation binaire, vu que 16 est une puissance de 2, à savoir 2 puissance 4.
Un chiffre hexadécimal correspondra donc à 4 bits, et un octet (8 bits) sera codé en 2 caractère hexadécimaux.
par exemple, l’adresse iP 192.168.1.1, codée en binaire 11000000.10101000.00000001.00000001, sera en code hexadécimal C0.A8.01.01.
De fait, les codes hexadécimaux servent surtout pour coder les caractères alphanumériques, ceux-ci étant codés sur 1 octet (ASCII) ou 4 (UTF8) ou plus (UTF16, UTF32...), ainsi que pour coder les couleurs en nuances de Rouge-Vert-Bleu (RGB) comme par exemple le rouge standard, codé donc #FF0000, le # indiquant que l’on utilise un code hexadécimal, et non un nom de couleur comme gold, darkorange, cyan, snow, aqua, azure, brown... Cela permet d’avoir plus de nuances de couleur que ce que proposent les différents systèmes et navigateurs.