Convertisseur Bases

Convertir entre bases numériques

Comprendre Les systemes de numeration
TL;DR

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.

DecimalBinaireBits
001 bit
111 bit
1010104 bits
421010106 bits
12711111117 bits
255111111118 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.

OctalBinairePermission
0000--- (aucune)
1001--x (execution)
4100r-- (lecture)
5101r-x (lecture + execution)
6110rw- (lecture + ecriture)
7111rwx (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.

DecimalHexBinaire
000000
991001
10A1010
15F1111
255FF11111111
256100100000000

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 #FF5733 se 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 0x7FFF5FBFF8A0 est 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 par 25 50 44 46 (soit %PDF en 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 dans plusieurs bases Valide

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
Entree non numerique Invalide

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