Convertisseur Bases
Convertir entre bases numériques
Les bases numeriques sont differentes facons de representer une meme valeur. Le decimal (base 10) est pour les humains, le binaire (base 2) est pour les ordinateurs, l'hexadecimal (base 16) fait le pont entre les deux.
Que sont les bases numeriques ?
Une base numerique (ou radix) definit le nombre de chiffres uniques utilises pour representer les nombres dans un systeme de numeration positionnelle. Dans la vie quotidienne, nous utilisons la base 10 (decimal) avec les chiffres 0 a 9. Les ordinateurs fonctionnent en base 2 (binaire) avec seulement 0 et 1. Les programmeurs utilisent frequemment la base 16 (hexadecimal) avec les chiffres 0-9 et les lettres A-F comme moyen compact de representer les donnees binaires.
L’idee cle est que toutes ces bases representent les memes valeurs sous-jacentes — simplement ecrites differemment. Le nombre decimal 42 est 101010 en binaire, 2A en hexadecimal et 52 en octal. Le nombre lui-meme ne change pas ; seule sa representation change.
Dans un systeme positionnel, la valeur de chaque chiffre depend de sa position. En decimal, le nombre 255 signifie (2 x 10^2) + (5 x 10^1) + (5 x 10^0) = 200 + 50 + 5. En binaire, 11111111 signifie (1 x 2^7) + (1 x 2^6) + … + (1 x 2^0) = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Le meme principe s’applique a toute base.
Binaire, octal et hexadecimal
Binaire (base 2)
Le binaire est le langage natif de l’electronique numerique. Chaque processeur, chaque puce memoire, chaque paquet reseau fonctionne sur des donnees binaires — des sequences de 0 et de 1. Chaque chiffre binaire est appele un bit, et 8 bits forment un octet.
| Decimal | Binaire | Bits |
|---|---|---|
| 0 | 0 | 1 bit |
| 1 | 1 | 1 bit |
| 10 | 1010 | 4 bits |
| 42 | 101010 | 6 bits |
| 127 | 1111111 | 7 bits |
| 255 | 11111111 | 8 bits (1 octet) |
Le binaire est fondamental mais peu pratique a lire en grande quantite pour les humains. Une adresse IP 32 bits en binaire est 11000000101010000000000100000001 — comparee a sa forme decimale 192.168.1.1 ou hex C0A80101.
Octal (base 8)
L’octal utilise les chiffres 0-7. Chaque chiffre octal correspond a exactement 3 bits binaires, ce qui rend la conversion entre binaire et octal simple. L’octal etait plus courant dans les premiers ordinateurs (PDP-8, Unix), et son heritage le plus visible aujourd’hui est celui des permissions de fichiers Unix.
| Octal | Binaire | Permission |
|---|---|---|
| 0 | 000 | --- (aucune) |
| 1 | 001 | --x (execution) |
| 4 | 100 | r-- (lecture) |
| 5 | 101 | r-x (lecture + execution) |
| 6 | 110 | rw- (lecture + ecriture) |
| 7 | 111 | rwx (toutes) |
Ainsi chmod 644 signifie : proprietaire = rw- (6), groupe = r— (4), autres = r— (4).
Hexadecimal (base 16)
L’hexadecimal (hex) utilise les chiffres 0-9 et les lettres A-F (ou A=10, B=11, …, F=15). Chaque chiffre hex represente exactement 4 bits binaires (un quartet), et deux chiffres hex representent exactement 1 octet. Cette correspondance 1:1 entre les chiffres hex et les quartets explique pourquoi l’hex est le format universel pour representer les donnees binaires de maniere lisible.
| Decimal | Hex | Binaire |
|---|---|---|
| 0 | 0 | 0000 |
| 9 | 9 | 1001 |
| 10 | A | 1010 |
| 15 | F | 1111 |
| 255 | FF | 11111111 |
| 256 | 100 | 100000000 |
Les valeurs hex sont generalement prefixees pour les distinguer du decimal : 0xFF (C/JavaScript), #FF5733 (couleurs CSS), U+00E9 (points de code Unicode), ou simplement ecrites avec un h final en langage assembleur.
Utilisations pratiques
Les bases numeriques apparaissent dans tout le developpement logiciel et l’administration systeme :
- Couleurs CSS : La couleur hex
#FF5733se decompose en Rouge=FF (255), Vert=57 (87), Bleu=33 (51). Chaque paire de chiffres hex represente un octet d’intensite de couleur, allant de 00 (0) a FF (255) - Adresses memoire et debogage : Les debogueurs et editeurs hex affichent la memoire en hexadecimal car chaque octet est proprement represente par deux chiffres. Une adresse memoire 64 bits comme
0x7FFF5FBFF8A0est bien plus lisible que son equivalent binaire - Configuration reseau : Les adresses IPv4 sont en decimal (192.168.1.1), mais les masques de sous-reseau sont plus clairs en binaire (255.255.255.0 = 11111111.11111111.11111111.00000000). Les adresses MAC utilisent l’hex (00:1A:2B:3C:4D:5E). Les adresses IPv6 sont entierement en hexadecimal
- Points de code Unicode : Les caracteres sont identifies par des points de code hex (U+0041 = “A”, U+00E9 = “e accent”, U+1F600 = emoji visage souriant)
- Signatures de fichiers (octets magiques) : Les formats de fichiers sont identifies par leurs premiers octets en hex. Un fichier PNG commence par
89 50 4E 47, un PDF par25 50 44 46(soit%PDFen ASCII) - Operations bit a bit et drapeaux : Les drapeaux de fonctionnalites, les masques de permissions et les registres materiels sont exprimes en hex ou binaire car chaque bit a une signification individuelle. Par exemple, un octet de drapeaux TCP de
0x12=00010010= SYN+ACK
Cas d’utilisation courants
- Conversion de couleurs : Les developpeurs web convertissent regulierement entre les codes couleur hex (#RGB), les valeurs RGB decimales (rgb(255, 87, 51)) et les representations HSL. Comprendre l’hex rend la manipulation des couleurs intuitive
- Debogage de protocoles binaires : L’analyse de paquets reseau (Wireshark), l’analyse de firmware et la retro-ingenierie necessitent toutes la lecture de donnees hexadecimales. Convertir entre hex, binaire et decimal est une competence essentielle
- Gestion des permissions de fichiers : Les administrateurs systeme utilisent quotidiennement la notation octale pour les commandes
chmod. Comprendre que 755 = rwxr-xr-x necessite de connaitre la conversion octal-binaire - Manipulation de drapeaux binaires : Combiner des drapeaux avec OR (
0x01 | 0x04 = 0x05), verifier des drapeaux avec AND (value & 0x04), et basculer avec XOR necessitent tous de maitriser le binaire et l’hexadecimal - Inspection de l’encodage des donnees : Lors du debogage de problemes d’encodage Base64, URL ou caracteres, examiner les valeurs brutes des octets en hex est souvent le chemin le plus rapide vers la comprehension du probleme
Essayez ces exemples
Decimal 255 = hexadecimal FF = binaire 11111111 = octal 377. Cette valeur est significative car elle represente la valeur maximale d'un octet non signe (8 bits), couramment utilisee dans les valeurs de couleur RGB et les masques de sous-reseau.
255 La chaine 'XYZ' n'est pas un nombre valide dans aucune base standard (jusqu'a la base 36). Bien que X, Y et Z soient des chiffres valides respectivement en base 34-36, l'entree doit specifier quelle base est prevue pour l'analyse.
XYZ