Comment convertir du binaire en décimal à la main ?+
Multipliez chaque chiffre par deux élevé à la puissance de sa position, en comptant à partir de zéro depuis la droite, puis additionnez les résultats. Pour 1011, cela donne 1×8 + 0×4 + 1×2 + 1×1, soit 11. La méthode du doublement est plus rapide pour les longues valeurs : partez du chiffre le plus à gauche, puis doublez à chaque fois le total en cours et ajoutez le chiffre suivant. Pour 1011, on obtient 1, puis 2+0 = 2, puis 4+1 = 5, puis 10+1 = 11. Le panneau du calcul de cette page détaille la première méthode chiffre par chiffre, pour que vous puissiez y comparer vos propres calculs.
Pourquoi l'hexadécimal utilise-t-il des lettres ?+
Parce que la base 16 a besoin de seize chiffres distincts et que le système décimal n'en fournit que dix. Les lettres A à F comblent l'écart et représentent les valeurs de dix à quinze. La raison de vouloir seize, au départ, est que 16 vaut 2 puissance quatre : exactement quatre chiffres binaires correspondent à un chiffre hexadécimal, sans reste ni retenue entre eux. Un octet s'écrit donc toujours avec deux caractères hexadécimaux, et c'est pourquoi les dumps mémoire, les codes couleur et les adresses MAC s'écrivent ainsi. L'octal a la même propriété avec trois bits par chiffre, et il a perdu face à l'hexadécimal surtout parce que les octets font huit bits et non neuf.
Qu'est-ce que le complément à deux, et pourquoi ne pas utiliser simplement un bit de signe ?+
Le complément à deux stocke un nombre négatif sous la forme du motif qui, ajouté à son équivalent positif, ramène le registre à zéro par dépassement. Sur huit bits, moins un s'écrit 11111111, car 11111111 plus 00000001 déborde en 00000000. La raison de le préférer à un simple bit de signe est que l'addition et la soustraction n'ont alors besoin d'aucun cas particulier : le même circuit additionneur gère les deux signes, et la comparaison fonctionne toujours. Une représentation signe et valeur absolue produit en outre deux zéros, positif et négatif, que chaque morceau de code doit ensuite penser à gérer.
Pourquoi 0.1 n'est-il pas exact en binaire ?+
Pour la même raison qu'un tiers n'est pas exact en décimal. Une fraction ne se termine dans une base donnée que si tous les facteurs premiers de son dénominateur divisent cette base. Dix se décompose en deux et cinq, donc les dixièmes, les cinquièmes et les demis se terminent en décimal. Deux n'a que lui-même, donc une fraction binaire ne se termine que si le dénominateur est une puissance de deux. Un dixième n'en est pas une, si bien que 0.1 devient 0.000110011001100… répété à l'infini, et tout format de largeur fixe doit le couper quelque part. C'est cette troncature qui fait que 0.1 plus 0.2 donne 0.30000000000000004 dans la plupart des langages. Tapez 0.1 ici avec le décimal comme base source, et la ligne du binaire montre directement la répétition.
À quoi sert la base 36 ?+
C'est la plus grande base qui tient dans les chiffres 0 à 9 plus les vingt-six lettres de l'alphabet latin : c'est donc la façon la plus compacte d'écrire un nombre qui reste insensible à la casse et facile à taper. Cela la rend utile pour les identifiants courts et les slugs d'URL : une valeur qui demande dix chiffres décimaux tient en six caractères en base 36. La base 32 est souvent préférée en pratique, car elle écarte les caractères faciles à confondre visuellement et correspond proprement à cinq bits, et la base 62 va plus loin en rendant la casse significative, au prix d'identifiants impossibles à dicter au téléphone.
Puis-je convertir un nombre négatif ?+
Oui. Tapez un signe moins devant et toutes les bases affichent le même signe, puisque le signe moins est une propriété de la valeur et non de la notation. C'est dans le panneau du registre que cela devient intéressant, car un registre de largeur fixe n'a pas de caractère de signe : il stocke à la place le motif en complément à deux, si bien que moins 42 sur huit bits s'écrit 11010110, ce qui, lu comme non signé, vaut 214. Les deux lectures s'affichent ensemble, avec une note qui explique laquelle votre langage vous donnera selon que le type est signé ou non.
Que se passe-t-il si mon nombre est trop grand pour la largeur choisie ?+
Il est tronqué par dépassement, et la page le signale. Trois cents ne tient pas sur huit bits, donc le registre contient 44, soit 300 moins 256. Ce n'est pas une erreur du convertisseur, c'est ce que fait le matériel, et le reproduire est plus utile que de refuser de répondre. Les conversions au-dessus du panneau du registre ne sont pas concernées : elles sont exactes et sans limite, jusqu'au plafond de 512 caractères en entrée.
Le convertisseur accepte-t-il les préfixes 0x et 0b ?+
Oui, lorsque le préfixe correspond à la base sélectionnée. 0x1F dans un champ réglé sur l'hexadécimal se lit 31 ; la même chaîne avec la base réglée sur le binaire est une vraie incohérence, donc le x est signalé comme chiffre invalide au lieu d'être discrètement ignoré. Les préfixes en sortie sont un réglage distinct : activez-les quand la valeur va dans du code source, désactivez-les quand elle va dans un texte ou une cellule de tableur.
Pourquoi y a-t-il moins de chiffres quand la base augmente ?+
Parce que le nombre de chiffres est un logarithme. Écrire un nombre n en base b demande environ logarithme en base b de n chiffres : augmenter la base réduit donc le nombre de chiffres, mais lentement, car doubler la base ne vous fait gagner qu'un seul chiffre pour chaque chiffre binaire de croissance. C'est pourquoi 255 demande huit chiffres binaires, trois chiffres décimaux et deux chiffres hexadécimaux, et pourquoi le tableau de toutes les bases sur cette page rétrécit vite de la base 2 à la base 10, puis change à peine de la base 20 à la base 36.
Quelque chose est-il envoyé à un serveur ?+
Non. Tous les calculs s'exécutent dans cet onglet avec le BigInt intégré de JavaScript, et aucune conversion n'implique de requête. Les valeurs collées depuis un débogueur, un identifiant interne ou l'empreinte d'une clé privée restent sur votre machine.