fantasticode.fr
Image default

Binaire, hexadécimal : comprendre les bases numériques

En bref

Le binaire et l’hexadécimal sont deux façons d’écrire les mêmes nombres que notre bon vieux système décimal, en changeant simplement de base : le décimal compte avec dix chiffres, le binaire avec deux, zéro et un, l’hexadécimal avec seize, de 0 à 9 puis de A à F. Les machines comptent en binaire pour une raison physique : leurs circuits ne distinguent de façon fiable que deux états, courant ou pas, et toute l’information numérique, nombres, textes, images, sons, se ramène à ces bits regroupés par huit en octets. L’hexadécimal, lui, est la sténographie du binaire pour les humains : chaque chiffre hexa condense exactement quatre bits, si bien qu’un octet s’écrit en deux caractères au lieu de huit, d’où sa présence partout où l’on regarde la machine de près, couleurs CSS, adresses mémoire, vidages hexadécimaux. Comprendre les conversions, avec quelques calculs déroulés pas à pas, démystifie définitivement ces écritures, et permet de savoir aussi quand on n’en a tout simplement pas besoin.

Ils sont l’aura de mystère du métier : ces alignements de zéros et de uns, ces codes couleur pleins de lettres, qui font si sérieux dans les films. Le binaire et l’hexadécimal ne sont pourtant que deux façons d’écrire les nombres de tous les jours, et une heure suffit à les apprivoiser pour toujours. Voici l’explication pas à pas, calculs déroulés compris, en prolongement du vocabulaire de la programmation et du guide complet pour apprendre à coder.

Compter autrement : la base 2 expliquée par la base 10

Le secret est que tu maîtrises déjà le mécanisme sans le savoir. En base dix, notre système courant, chaque position d’un nombre vaut une puissance de dix : dans 347, le 7 compte les unités, le 4 les dizaines, le 3 les centaines, et le nombre se décompose en 3 fois 100, plus 4 fois 10, plus 7 fois 1. Le binaire applique la même règle avec des puissances de deux : les positions valent 1, 2, 4, 8, 16, 32, 64, 128 en remontant vers la gauche, et chaque position ne peut contenir que 0 ou 1, présent ou absent. Déroulons la lecture de 1011 en binaire, de droite à gauche : la formule est la somme des puissances de deux marquées d’un 1, soit 1 fois 1, plus 1 fois 2, plus 0 fois 4, plus 1 fois 8 ; le calcul donne 1 plus 2 plus 0 plus 8, résultat : 11 en décimal. Dans l’autre sens, convertir 13 en binaire revient à le monnayer en puissances de deux, en prenant à chaque fois la plus grande possible : 8 tient dans 13, reste 5 ; 4 tient dans 5, reste 1 ; 2 ne tient pas dans 1 ; 1 tient, reste 0. Résultat : 1101, soit 8 plus 4 plus 1.

Pourquoi les machines s’infligent-elles ce système à deux chiffres ? Par réalisme physique : un circuit électronique distingue de façon fiable deux états, tension présente ou absente, aimantation dans un sens ou dans l’autre, creux ou plat sur un disque optique, et bâtir sur dix états distincts serait fragile là où deux sont robustes. Le chiffre binaire s’appelle un bit, contraction de binary digit, et les bits se groupent par huit en octets, l’unité de base de toute l’informatique : un octet, avec ses huit positions, code 256 valeurs différentes, de 0 à 255, un nombre que tu recroiseras partout. Car c’est la deuxième révélation : tout est nombre dans la machine, donc tout est bits. Les textes, via des tables qui associent un nombre à chaque caractère, les images, grilles de pixels dont chaque couleur est un triplet de nombres, les sons, suites de mesures numérisées, et le code source lui-même, traduit en instructions numériques par la compilation : sous chaque écran, il n’y a que des octets, et savoir les lire est un superpouvoir discret.

L’hexadécimal, sténographie du binaire

Le binaire a un défaut rédhibitoire pour les humains : il est illisiblement long, le moindre octet exigeant huit caractères, une adresse mémoire en réclamant des dizaines. L’hexadécimal est la solution élégante : une base seize, dont les chiffres vont de 0 à 9 puis empruntent les lettres A à F pour les valeurs dix à quinze, chaque position valant une puissance de seize, 1, 16, 256, et ainsi de suite. Sa magie tient à une coïncidence arithmétique : seize étant deux puissance quatre, chaque chiffre hexadécimal correspond exactement à un paquet de quatre bits, la conversion entre les deux écritures se faisant par simple découpage, sans aucun calcul ; l’octet 1111 0000 se lit paquet par paquet, 1111 vaut quinze donc F, 0000 vaut zéro, résultat F0, deux caractères au lieu de huit. Déroulons une lecture complète : que vaut 2F en décimal ? La formule positionnelle donne 2 fois 16, plus F fois 1 ; F valant quinze, le calcul est 32 plus 15, résultat : 47. L’hexadécimal n’est donc pas un troisième monde : c’est du binaire plié en quatre, taillé pour l’œil humain.

Tu le croises d’ailleurs déjà sans toujours le nommer. Les couleurs du web d’abord, ta rencontre la plus fréquente : un code comme #FF6600 en CSS empile trois octets, rouge, vert, bleu, chacun écrit en deux chiffres hexa ; FF vaut 255, le rouge à fond, 66 vaut 6 fois 16 plus 6, soit 102 de vert, 00 éteint le bleu, et voilà l’orange, chaque nuance de ton écran étant un triplet de ce genre. Les adresses ensuite : celles de la mémoire, qu’affichent les débogueurs et que manipulent les pointeurs, s’écrivent en hexa par convention universelle, préfixe 0x en tête dans la plupart des langages, tout comme les identifiants matériels des cartes réseau. Les vidages hexadécimaux enfin, ces inspections d’octets bruts qui permettent d’ouvrir n’importe quel fichier au microscope, où l’on découvre par exemple que les formats se reconnaissent à leur signature d’entête, quelques octets rituels en tête de fichier. Partout le même motif : dès qu’on regarde la machine de près, l’hexadécimal est la langue d’affichage.

Ce que ça change pour un dev, et ce que ça ne change pas

Où ces bases servent-elles concrètement dans une carrière ? D’abord dans la compréhension des types et de leurs limites : savoir qu’un octet plafonne à 255 et qu’un entier de trente-deux bits a un maximum précis éclaire des mystères classiques, le compteur qui déborde et repart en négatif, le grand nombre qui s’arrondit bizarrement, la fameuse imprécision des décimaux en machine rencontrée en codant une calculatrice, toutes choses qui cessent d’être des malédictions pour devenir des conséquences arithmétiques. Ensuite dans les encodages de texte : comprendre que chaque caractère est un nombre, et que les accents français ont souffert des tables historiques avant l’unification moderne, transforme les caractères bizarres des fichiers mal ouverts en diagnostic immédiat. Dans les manipulations de bas niveau encore, drapeaux binaires, masques, permissions, le pain quotidien du langage C, de l’embarqué et de la programmation système, où penser en bits est le métier même. Et dans mille détails du quotidien, du code couleur ajusté à l’œil au vidage lu sans frayeur.

L’honnêteté impose le contrepoint : dans le développement de haut niveau qui occupera peut-être l’essentiel de ta pratique, sites, applications, scripts, tu peux passer des semaines sans convertir un seul nombre à la main, les langages et les outils faisant écran, et c’est très bien ainsi ; la conversion mentale véloce n’est pas un prérequis du métier, et personne ne juge un développeur web sur sa table de puissances de deux, comme le rappelle avec bon sens math et code. Ce qui compte est ailleurs : avoir compris une fois, vraiment, que tout est nombre et que les écritures ne sont que des habits, de sorte que le jour où un octet, un débordement ou un code couleur croise ta route, il te trouve curieux plutôt qu’intimidé. Une heure de pratique suffit à installer cette aisance pour toujours : convertis une dizaine de nombres dans les deux sens, décode deux codes couleur, ouvre un fichier dans un inspecteur hexadécimal pour le plaisir des signatures ; c’est un petit rite de passage, discret et définitif, vers l’arrière-boutique de la machine, celle où les zéros et les uns cessent d’être un décor de cinéma pour devenir ce qu’ils sont : des nombres comme les autres, écrits autrement.

Questions fréquentes

Pourquoi les ordinateurs comptent-ils en binaire ?

Par réalisme physique : leurs circuits distinguent de façon fiable deux états, tension présente ou absente, et bâtir sur deux états est robuste là où dix seraient fragiles. Toute l’information, nombres, textes, images, sons, se ramène ainsi à des bits, regroupés par huit en octets.

Comment convertir un nombre binaire en décimal ?

En additionnant les puissances de deux marquées d’un 1, les positions valant 1, 2, 4, 8, 16 et ainsi de suite de droite à gauche. Exemple avec 1011 : 1 fois 8, plus 0 fois 4, plus 1 fois 2, plus 1 fois 1, soit 8 plus 2 plus 1, résultat 11.

À quoi sert l’hexadécimal en programmation ?

C’est la sténographie du binaire : chaque chiffre hexa condense exactement quatre bits, un octet s’écrivant en deux caractères. On le croise dans les couleurs CSS comme #FF6600, les adresses mémoire affichées par les débogueurs et les vidages hexadécimaux de fichiers.

Faut-il maîtriser le binaire pour être développeur web ?

Non : le développement de haut niveau fait écran, et l’on peut coder des semaines sans conversion manuelle. L’essentiel est d’avoir compris une fois que tout est nombre, pour aborder sans frayeur les débordements, encodages et codes couleur le jour où ils croisent ta route.

Sources

Cet article a une vocation informative et pédagogique. Les plateformes, outils et formations éventuellement cités le sont à titre d’exemple ; compare plusieurs options avant de t’engager ou de payer.