Aller au contenu principal
CalcMax

Calculatrice de nombres binaires

Résultat

10001

Binaire

Décimal
17
Hexadécimal
11
Reste
0

Une calculatrice binaire additionne, soustrait, multiplie et divise des nombres écrits en base deux, et donne la réponse en binaire, en décimal et en hexadécimal à la fois. La base deux n’utilise que les chiffres 0 et 1, et l’arithmétique est celle que vous connaissez déjà — la seule chose qui change est l’endroit où se produit la retenue. En décimal, 9 plus 1 donne une retenue parce que dix est la base ; en binaire, 1 plus 1 en donne une parce que c’est deux. Ce fait unique est toute l’addition binaire, et la soustraction, la multiplication et la division en découlent de la façon attendue. La réponse est imprimée trois fois parce que les trois lectures servent à des choses différentes : le binaire est ce que vous êtes venu chercher, le décimal est ce que vous vérifiez d’un coup d’œil, et l’hexadécimal est la même suite de bits groupée quatre par quatre, ce qui est la façon dont la lit quiconque écrit du code machine. La division est une division entière : le reste obtient donc une ligne à lui plutôt que de disparaître dans un séparateur décimal.

Formule

en binaire : 1011 + 110 = 10001 ; 1011 ÷ 10 = 101 reste 1 ; 110 − 1011 = -101 ; et 1 + 1 = 10

1011
Le premier nombre, écrit en base deux. C’est le lire en base deux qui en fait onze — les mêmes chiffres lus en décimal donneraient mille onze, ce qui est exactement la confusion que cette page existe pour empêcher
+ − × ÷
L’opération. Elle se fait chiffre par chiffre exactement comme en décimal, avec dix remplacé par deux partout où une retenue ou un emprunt intervient
1 + 1 = 10
Le seul fait de l’arithmétique binaire qui ne soit pas déjà familier. Deux uns font un zéro avec un un retenu dans la position suivante, parce que les chiffres s’épuisent après le un. Trois uns font 11 — un un dans la réponse et un un retenu
somme de chiffre × 2ⁿ
Comment la lecture décimale est produite : chaque chiffre binaire multiplié par la valeur de sa position, et les résultats additionnés. C’est ainsi que la forme binaire 10001 ressort à dix-sept, et c’est le seul chemin entre la réponse binaire et la réponse décimale
reste
Ce qui subsiste quand une division ne tombe pas juste. Diviser 1011 par 10 donne 101 et il reste 1, parce que onze vaut cinq fois deux plus un. Le reste est toujours affiché, et il vaut zéro pour les trois opérations qui ne peuvent pas en laisser
53 bits
La largeur d’une saisie acceptée ici : jusqu’à 9 007 199 254 740 991, qui est un un suivi de cinquante-trois chiffres en binaire. Au-delà de cette largeur, un nombre machine cesse de distinguer ses voisins, et l’arithmétique cesserait silencieusement d’être exacte

Quiconque lit ou écrit du binaire a besoin de cette page pour la raison même qui fait utiliser une calculatrice décimale : l’arithmétique n’est pas difficile, mais la faire à la main est lent et les erreurs sont invisibles. Les usages quotidiens sont la lecture d’un registre matériel ou d’un masque de bits — 1011 ET quelque chose, ou quels drapeaux un octet d’état a levés — et la vérification d’une valeur qu’un compilateur, un débogueur ou un outil réseau a imprimée en binaire. Les masques de sous-réseau, les bits de permission d’un fichier, la colonne de drapeaux d’un registre d’état de processeur et l’état des broches d’un microcontrôleur sont tous des nombres binaires sur lesquels on a besoin de faire de l’arithmétique, et la lecture hexadécimale placée à côté de la réponse est la forme sous laquelle ces valeurs sont réellement écrites quand elles sont documentées. L’autre usage est l’apprentissage : la règle de la retenue est la chose que tout le monde rate une fois sur papier, et taper 1011 plus 110 puis voir apparaître 10001 en binaire corrige cette erreur plus vite qu’un exemple corrigé dans un livre. Les élèves qui travaillent les bases à la main, et quiconque reconvertit un listing de code machine en quelque chose de vérifiable, trouveront que les lectures décimale et hexadécimale font l’essentiel du travail.

Exemples détaillés

  1. Additionner 1011 et 110

    1. Alignez les deux nombres à droite : 1011 et 0110
    2. Colonne de droite : 1 + 0 = 1
    3. Colonne suivante : 1 + 1 = 10, donc on écrit 0 et on retient 1
    4. Colonne suivante : 0 + 1 + le 1 retenu = 10, donc on écrit 0 et on retient 1
    5. Colonne de gauche : 1 + le 1 retenu = 10, donc on écrit 0 et on retient 1 dans une nouvelle position
    6. Le résultat se lit 10001, soit 16 + 1 = 17 en décimal

    L’exemple d’ouverture de la page, et le moyen le plus rapide de voir la règle de la retenue à l’œuvre : la somme est plus longue que chacune des deux entrées, parce que la dernière retenue a eu besoin d’une position à elle. La lecture décimale, 17, est le contrôle — onze plus six font bien dix-sept — et l’hexadécimal 11 est la même suite de bits groupée quatre par quatre, ce qui explique qu’il ressemble par hasard au onze décimal. Cette coïncidence disparaît dès que les nombres grandissent.

  2. Diviser 1011 par 10

    1. C’est onze divisé par deux, donc la réponse est cinq et il reste un
    2. Cinq s’écrit 101 en binaire, et un s’écrit 1
    3. La page annonce le quotient 101 et le reste 1 plutôt que d’imprimer 101,1

    L’exemple qui montre pourquoi la ligne du reste existe. Imprimé comme un quotient seul, 101 dirait que onze divisé par deux font cinq, et c’est la ligne en dessous qui rend l’énoncé vrai. Il y a une seconde raison de ne pas tendre la main vers un séparateur décimal ici : dès qu’un résultat a une partie fractionnaire, l’arithmétique peut cesser de se terminer — un divisé par trois en binaire ne s’arrête jamais — et les entrées comme les sorties de cette page sont des nombres entiers d’un bout à l’autre.

  3. Soustraire 1011 de 110

    1. C’est six moins onze, donc la réponse est négative
    2. La différence vaut cinq, et le signe est reporté devant le résultat
    3. Cinq s’écrit 101, donc la réponse est -101

    Rien ici n’utilise le complément à deux, le schéma qu’un processeur emploie pour stocker les nombres négatifs. Le signe moins est conservé comme un signe devant le nombre, ce qui est la forme qu’utilise une personne écrivant sur du papier et la forme qui reste lisible quand la valeur est imprimée à côté de ses lectures décimale et hexadécimale. La représentation machine de la même valeur serait un motif de bits à largeur fixe, et cette largeur n’est pas quelque chose que cette page possède.

Limites

Cette page ne travaille que sur des nombres entiers. Il n’y a ni virgule binaire ni binaire fractionnaire, donc « 1.01 » n’est pas accepté — ce qui signifie aussi qu’une division qui ne tombe pas juste obtient un quotient et un reste plutôt qu’un développement décimal, et que le quotient est tronqué vers zéro plutôt qu’arrondi. Les saisies sont limitées à 9 007 199 254 740 991, un un suivi de cinquante-trois chiffres binaires ; au-delà, l’arithmétique ne peut plus être garantie exacte, et une saisie de cette taille est refusée plutôt que traitée approximativement. Les résultats sont tenus au même plafond, donc une multiplication qui le dépasse signale une erreur au lieu d’un nombre faux. Les nombres négatifs s’écrivent avec un signe moins devant plutôt qu’en complément à deux, et aucune largeur de bits fixe n’est proposée ni supposée : 1011 fait quatre bits ici, et non les quatre bits de poids faible d’un registre. La division par zéro est refusée.

Questions fréquentes

Pourquoi 1 + 1 vaut-il 10 et non 2 ?
Parce qu’il n’existe pas de chiffre pour deux en base deux. Les chiffres sont 0 et 1, et ensuite la colonne s’épuise, exactement comme la colonne des unités s’épuise après 9 en décimal. Deux uns font donc un zéro dans cette colonne et retiennent un un dans la suivante, ce qui s’écrit 10 — et c’est le même énoncé que 9 + 1 = 10 en décimal, la base en plus. Trois uns font 11 : un un dans la réponse et un un retenu.
Pourquoi y a-t-il toujours une ligne de reste quand j’additionne ou je multiplie ?
Parce que le panneau de résultats est une liste fixe plutôt qu’une liste qui grandit et rétrécit selon l’opération choisie, et qu’une ligne qui apparaît et disparaît serait plus difficile à lire qu’une ligne toujours au même endroit. Soustraire, additionner et multiplier ne peuvent pas laisser de reste en nombres entiers, la ligne affiche donc 0 — ce zéro est la ligne en train de dire que l’opération n’en a pas laissé, et non un échec de calcul. La division est la seule opération ici qui puisse en laisser un, et cette ligne est ce qui empêche un quotient tronqué de passer pour une réponse exacte.
Quel est le plus grand nombre que je peux saisir ?
9 007 199 254 740 991, ce qui fait cinquante-trois uns en binaire, ou 1FFFFFFFFFFFFF en hexadécimal. La limite est la largeur à laquelle une machine cesse de distinguer des entiers voisins, donc au-delà l’arithmétique cesserait silencieusement d’être exacte — le résultat aurait l’air d’un nombre sans en être un. Une saisie plus large est refusée avec un message plutôt que tronquée ou arrondie, et un résultat qui dépasse le même plafond est refusé lui aussi.
Puis-je faire une soustraction et obtenir une réponse négative ?
Oui. Mettez le plus grand nombre dans le second champ et la réponse revient avec un signe moins devant, dans les trois lectures. Ce n’est pas le complément à deux, la représentation qu’un processeur utilise quand il stocke un nombre négatif sur une largeur de bits fixe — c’est la forme à signe placé devant, celle que vous écririez sur du papier et celle qui reste lisible à côté d’une lecture décimale et d’une lecture hexadécimale. Aucune largeur de bits n’est supposée, donc une réponse négative n’est pas repliée dans un motif de uns.
Pourquoi la division n’est-elle pas exacte ?
Parce que cette page travaille sur des nombres entiers, donc une division qui ne tombe pas juste donne le quotient tronqué vers zéro plus le reste. Onze divisé par deux font cinq et il reste un, et la page annonce 101 et 1 plutôt que 101,1. C’est un choix délibéré et non une lacune : dès qu’un résultat a une partie fractionnaire, l’arithmétique peut cesser de se terminer — un divisé par trois en binaire est un développement périodique — et une page qui l’arrondirait discrètement imprimerait un nombre qui n’est pas la réponse.
À quoi sert la lecture hexadécimale ?
C’est la même valeur groupée quatre bits à la fois, ce qui est la façon dont lisent le binaire les gens qui écrivent du code machine. Un octet fait huit bits et donc exactement deux chiffres hexadécimaux, si bien que FF, 2A et B2 sont les formes qui apparaissent dans la documentation, les débogueurs et les fiches techniques. Convertir entre binaire et hexadécimal n’est pas vraiment un calcul — c’est un regroupement — et c’est pourquoi cette lecture est gratuite ici.

Références

Calculatrices liées