Aller au menu - Aller au contenu

Les calculs en binaire


Informations sur le tutoriel

AvatarAvatar
Auteurs : distopia et Sergeswi
Difficulté : Facile
Temps d'étude estimé : 4 heures
Visualisations : 30 240
Licence : Creative Commons BY-SA


Plus d'informations Plus d'informations

Historique des mises à jour

  • Le 22/02/2010 à 13:10:15
    Mise à jour.
  • Le 17/11/2009 à 02:04:32
    ajout d'un QCM
  • Le 02/09/2009 à 20:53:30
    correction alerte #849
Vous avez toujours rêvé d'additionner des nombres ... en binaire ? Alors ce tuto est fait pour vous ! ^^

En effet, vous allez apprendre ici à effectuer, manuellement, des opérations en binaire.

Avant de commencer il peut être utile (logique mais pas obligatoire) de savoir convertir un nombre décimal en binaire et inversement.
Pour cela, n'hésitez pas à vous reporter au tutoriel de Dentuk.

Ce cours n'est pas indispensable pour programmer avec un langage comme le C ou le Java mais si un jour vous comptez utiliser des micro-contrôleurs, ou simplement réaliser une application en Assembleur, ces connaissances pourront vous être utiles.


Attention, un QCM vous attend à la fin !

Écrire un nombre négatif

Préparatifs



Avant de commencer, sachez que tous les exemples que je donnerais par la suite seront fait avec des chars car je suis une feignasse et que écrire un int en binaire c'est trop long. Cependant que ce que vous allez apprendre ici fonctionne avec tout les types de variables gérant les entiers (char, long, int) mais pas avec les variables acceptant aussi les nombres à virgule (float, double).
En effet ces derniers ne sont pas codés de la même manière :

Les variables pour les entiers sont codés en binaire en utilisant tous les bits pour donner la "valeur" du nombre .

Plan de Char

Ainsi un char qui est (en théorie) codé sur 8 bits pourra avoir 256 (2⁸) valeurs différentes.

Ah! Un détail (important): Si le char est employé en tant que "unsigned" (variable toujours positive) le bit 7 sert à donner la valeur du nombre mais si on l'utilise en tant que "signed" ce bit sert à donner le signe du nombre (0 = positif, 1 = négatif).
Ainsi 1000 1111 est égal à 143 si la variable est non-signé et à -113 en cas contraire (Si vous lisez la fin de cette partie, vous comprendrez comment je fais pour "deviner" ça :) ).


Par opposition, les variables gérant les nombres à virgule utilisent une partie des bits pour donner la "valeur" du nombre et le reste pour donner la position de la virgule.

Par exemple pour un nombre codé sur 32 bits (float) :

Plan de nombre à virgule

Les bits 0 à 22 servent à coder le nombre sans tenir compte de la virgule (3616.999 s'écrit donc 3616999).
Les bits 23 à 30 servent à donner l'exposant (la position de la virgule quoi ;) ).
Le bit 31 sert préciser le signe.

Si vous êtes curieux et que vous voulez en savoir plus : RTFM :p .

Enfin, il faut savoir que ce tutoriel utilise deux notations pour indiquer les bases et les opérations :
  • La base d'un nombre est indiquée entre parenthèses et en indice, cela permet d'éviter toute confusion. Ainsi, 11(10) est le nombre 11 en décimal et 11(2) est le nombre 11 en binaire.
  • Les signes opératoires sont pour l'addition, la soustraction, la multiplication et la division respectivement +, -, * et /. Ces symboles se trouvent dans le pavé numérique de votre clavier.


Exemple : 2(10) * 3(10) / 6(10) = 1(10)



Écrire -1, c'est possible !



Bien... Et si nous commencions le cours ?

Si vous avez lu le tutoriel de Dentuk sur la conversion décimal/binaire, vous devez savoir que 1 s'écrit 0000 0001.

Mais savez-vous écrire -1 ?


Pour le savoir on a, en gros, deux méthodes : une simple que vous allez aimer et une plus compliquée que vous utiliserez.

La méthode simple :
On sait que 0 - 1 = -1 donc :

Soustraction de 1 par 0

Si ce n'est pas clair pour vous, vous pouvez imaginer que 0000 0000 = 1 0000 0000 mais que le 1 "dépasse" de la variable donc qu'on ne l'écrit pas.
Parbleu ! Mais alors -1 s'écrit de la même manière que 255 ?!
Et oui, c'est pour cela qu'il faut bien comprendre la différence entre les nombres signés et les autres.

Ainsi :

Soustraction de 1 par -1

L'opération effectuée est : -1 - 1 = -2 d'où -2(2) = 254(2)

Si vous êtes perdu, passez à la partie suivante qui parle des additions et soustractions, cela sera peut-être plus clair après.

Ça va, vous suivez ?

J'espère que oui car voici la méthode plus compliquée !

Attends ! Pourquoi on utiliserait une technique plus dure si on connait celle-ci ? On ne va pas se compliquer la vie pour rien !

Excellente question ! Et bien tout simplement parce que la méthode plus compliquée permet de travailler aussi bien sur des petits nombres que sur des grands. Non pas que cette méthode ne puisse pas mais essayez de trouver l'équivalent binaire de -19 de tête :

Soustraction impossible de 19 par 0

Moi, personnellement, j'ai un peu de mal.

La méthode compliquée (aussi appelée complément à deux) :
  1. Tout d'abord, vérifiez que le nombre à convertir en binaire est négatif. Si le nombre est positif, pas de soucis, vous savez normalement le faire.
  2. Si le nombre est négatif (par exemple -19)
    • On convertit sa valeur absolue en binaire. Dans notre cas on écrit donc 19 en binaire : 19(10) = 0001 0011(2)
    • On inverse tous les bits du nombre : 0001 0011(2) devient 1110 1100(2).
    • On ajoute 1 au résultat précédent :

      Ajout de 1 à l'inversion des bits du nombre

    • -19(10) = 1110 1101(2). Voilà ! C'était pas trop dur, avouez ! C'est juste un peu plus long.


Petit détail



Voici un tableau représentant l'équivalent décimal de la valeur des variables "signées" de type char.

Calcul 5

Comme les nombres négatifs ont toujours un 1 comme bit de poids fort, ils sont représentés au dessus des nombres positifs dans ce tableau.

Vous constaterez ici que le 0 est considéré comme un nombre positif, donc que ces derniers ne vont que jusqu'à 127 tandis que les négatifs atteignent -128.

Une autre particularité due à cette façon de coder les nombres négatifs est que si une variable atteint le maximum 127 pour un char et qu'elle est incrémentée, elle passera directement à -128, alors que la même chose pour une variable "unsigned" la fait repartir à 0.

Essayez, vous verrez :

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    char k = 0;
    do					 
    {
        printf("%ld\n", k);
        k++;			         //    j'incrémente ma variable
    }
    while(k>=0);
    printf("%ld\n", k);			  //    Tadam!!

    return 0;
}


Bien entendu ce problème peut aussi se retrouver dans les calculs si le résultat dépasse la valeur maximale permise par la variable donc faites attention !

Addition et soustraction

Bien, passons maintenant aux calculs !

Ne vous en faites pas, on ne va faire que des choses simples, déjà parce que je suis une bille en maths et parce que les processeurs aussi - c'est dit sans méchanceté hein ! ;) .
Ainsi les seuls calculs que l'on va aborder seront l'addition, la soustraction, la multiplication et ... la division !

Les additions



Commençons en douceur avec l'addition que vous avez déjà employé si vous avez fait des essais dans la partie précédente.

Table de vérité



On va commencer par définir ce que j'appelle une "table de vérité" (en fait c'est peut-être même son vrai nom).
Cette table de vérité est une liste des différentes possibilités qu'un calcul peut donner :

CalculRésultatCalcul binaireRésultat binaire
0 + 0 0 0000 + 0000 0000
0 + 1 1 0000 + 0001 0001
1 + 0 1 0001 + 0000 0001
1 + 1 2 0001 + 0001 0010


Un petit rappel :

Rappel sur les retenues avec 19 + 4

Lorsque vous faites ce calcul, vous savez que 9 plus 4 font 13. Vous mettez donc 3 en bas à droite et vous gardez quoi ? Et oui, une retenue ;) . La retenue (ici, 1) s’ajoute au chiffre d’après.
Et bien en binaire c'est pareil :

1 + 1 en binaire donne 10, on garde une retenue

Je vous rappelle qu'en binaire il n'y a que deux chiffres. La retenue arrive donc très souvent, il faut pouvoir s'en sortir avec.


Exemple



On va faire un exemple : allez, 6 + 14 = 20.

En binaire :

6(10) = 110(2)
14(10) = 1110(2)


Somme de 6 et 14, étape 1

Bit n°0 : 0 + 0 = 0

On commence facile ;) .

Somme de 6 et 14, étape 2

Bit n°1 : on tombe sur un cas de retenue. 1(2) + 1(2) = 10(2) donc on met le 0 dans le résultat et on garde le 1 en retenue. Ce qui donne donc :

Somme de 6 et 14, étape 3

Bit n°2 : Le calcul est 1(2) + 1(2) mais attention ! Il ne faut pas oublier la retenue du calcul précédent ! Ce qui donne en réalité 1(2) + 1(2) + 1(2) = 11(2) = 3(10). On met donc 1 dans le résultat et on garde une nouvelle retenue de 1.

Somme de 6 et 14, étape 4

Bit n°3 : le calcul aurait du être 0 + 1 mais n'oubliez pas la retenue ! Et oui ! :D Le calcul exact est donc 1(2) + 1(2) = 10(2) ; on met donc 0 au résultat et 1 en retenue. Et comme il n'y a plus rien après la retenue tombe toute seule au résultat ;) .

Somme de 6 et 14, étape 5

Et voilà ! Vous pouvez vérifier que 20(10) = 10100(2).

Voilà, les additions sont finies. C'était pas si dur, hein ;) .

Les soustractions



Table de vérité



Voyons d'abord la table de vérité :

CalculRésultatCalcul binaireRésultat binaire
0 - 0 0 0000 - 0000 0000
0 - 1 -1 0000 - 0001 1111
1 - 0 1 0001 - 0000 0001
1 - 1 0 0001 - 0001 0000


La ligne 2 est un peu particulière. Je l'explique :
Quand vous tombez sur un chiffre qui doit se faire soustraire par un plus grand que lui, vous prenez une dizaine à gauche du chiffre pour pouvoir soustraire ;) .
Par exemple, quand vous faites :

Rappel sur les emprunts avec 45 - 28, étape 1

5 – 8 n’est pas facile à réaliser. Mais si l’on prend 15 – 8, c’est tout de suite plus simple ;) . On a ainsi 15 - 8 = 7. Il faut cependant que l'on retire une dizaine à 45 car on en a pris une pour effectuer l'opération précédente, ce qui nous donne :

Rappel sur les emprunts avec 45 - 28, étape 2

Et maintenant ? Il ne nous reste plus qu'à effectuer la soustraction des dizaines :

3 – 2 = 1 donc 45 – 28 = 17

Et bien, en binaire c'est pareil : vous prendrez une paire autant qu'en décimal vous prenez une dizaine au bit supérieur et mettrez ce qu'il reste dans les unités.

Exemple simple



Un petit exemple pour mettre ça en pratique.

15(10) - 6(10) = 9(10)

Soustraction de 15 - 6, étape 1

C'est une soustraction très simple :

  • Bit n°0 : 1 - 0 = 1
  • Bit n°1 : 1 - 1 = 0
  • Bit n°2 : 1 - 1 = 0
  • Bit n°0 : 1 - 0 = 1


Ce qui donne :

Soustraction de 15 - 6, étape 2

On vérifie : 9(10) = 1001(2) ! Nous n'avons pas eu le cas de l'emprunt de dizaine mais il va bien falloir faire un exemple plus compliqué :D .

Exemple plus difficile



10(10) - 5(10) = 5(10)

1010(2) - 101(2) = 101(2)

Soustraction de 10 - 5, étape 1

On commence avec 0 - 1. Vu que c'est impossible on va aller emprunter une paire à gauche (paire en binaire, dizaine en décimal). Donc cela donne 10(2) - 1(2) et c'est bien plus réalisable ! Le résultat étant 1, on l'inscrit et hop, c'est fait :) .

Soustraction de 10 - 5, étape 2

Maintenant, le bit n°1 : on a un 1 qui s'est soustrait à droite donc il n'y est plus. On a donc 0 - 0 et euh le résultat est évident :D ... Sur le dessin, vous pouvez voir que la disparition du 1 est marquée avec une paire en rouge : c'est le -1.

Soustraction de 10 - 5, étape 3

Enfin, on retrouve la même situation qu'au bit n°0 : 0 - 1. On prend donc le 1 de gauche et ça donne : 10(2) - 1(2) = 1(2).

Soustraction de 10 - 5, étape 4

Et voilà, c'est fini. Vous pouvez vérifier que 5(10) = 101(2). Si vous avez compris comment ça marche, vous n'aurez pas de souci avec les divisions :o !

Multiplication et division

Vous savez maintenant additionner et soustraire. Mais que pensez-vous de multiplier ou diviser des nombres ... en binaire ?!

Multiplications



Table de vérité



En comparaison des soustractions, les multiplications en binaire sont très simples.
Voici leur table de vérité :

CalculRésultatCalcul binaireRésultat binaire
0 * 0 0 0000 * 0000 0000
0 * 1 0 0000 * 0001 0000
1 * 0 0 0001 * 0000 0000
1 * 1 1 0001 * 0001 0001


Ça a l'air simple, n'est-ce pas ? Cela est dû à la simplicité de la base 2. En effet, les seules multiplications à effectuer sont par 0 ou par 1. Fini les méchants "8 fois 34" qu'on a pu vous sortir en collège. Avec le binaire, tout est relativement plus simple.

En fait, ceci constitue la base même des mathématiques élémentaires (c'est vous dire). Pour tout nombre a : a * 0 = 0 et a * 1 = a..


La table de vérité est très simple mais pour les calculs, il y a un détail qui peut réduire à néant votre multiplication si vous le négligez. Il va donc falloir être prudent.

Exemple



Essayons de multiplier 3 par 2 :

3(10) * 2(10) = 6(10)
11(2) * 10(2) = ?(2)


Allons-y :

3 fois 2, étape 1

Ne vous méprenez pas ! Ici ce sont bien deux nombres en binaire (un un et un zéro) et pas deux décimaux (onze et dix) même si le calcul est exactement le même !


Ici, on n'a que deux bits, ce sera facile ;) .

  • Bit n°0 : 11(2) * 0(2) = 0(2)
  • Bit n°1 : 11(2) * 1(2) = 11(2)


Il faut cependant faire attention au décalage qui peut tout fausser :colere2: . Nos résultats sont justes mais la différence entre ces deux calculs est que l'on ne les a pas effectués dans la même colonne (donc pas le même exposant). C'est donc de ce décalage qu'il faut se méfier.

En images, cela sera sûrement plus clair ;) .

3 fois 2, étape 2

Dans l'ordre, on fait 11 * 0 et on écrit le résultat dans la colonne où l'on a commencé (ici, la première). Vient le tour du 11 * 1. Mais ce calcul, on l'a commencé à partir de la colonne du 1 donc la deuxième. Ce décalage fait que l'on doit inscrire le résultat dans la bonne colonne, sinon, tout est fichu !

Et enfin, il suffit simplement d'additionner les résultats en faisant attention à ce sacré décalage ;) .

3 fois 2, étape 3

Constat



On peut remarquer que :
11(2) * 10(2) = 110(2)
11(10) * 10(10) = 110(10)


Le calcul donne le même résultat dans les deux bases !
L'avantage du binaire est qu'il n'y a que deux chiffres, 1 et 0. Multiplier par 1 ou 0 est assez simple. Dans cette logique on peut multiplier par 10 aisément. Si je vous dis 1011010 * 10 vous y arriverez en quelques secondes.

Mais alors pourquoi se casser la tête avec ta méthode ?


Il y a une bonne raison pour laquelle cette méthode peut poser problème : cette technique sera plus compliquée pour une multiplication par 11 voire pire ! Imaginez devoir faire le calcul suivant de tête :

Multiplication impossible

Facile, vous croyez :D ? Je vous conseille donc de garder notre méthode, le résultat sera correct. Cependant, pour les multiples de 10, faire un calcul de tête reste très aisé ;) .

Il est maintenant temps de passer aux divisions !

Divisons



Principe de la division euclidienne



Ah, le gros morceau ! :D

Je ne mets pas de table de vérité car dans ce cas je ne la trouve pas vraiment utile : on ne parle ici que de la division euclidienne qui est en fait une suite de soustractions (comme la multiplication est une suite d'additions d'ailleurs).

De toute manière, les calculs en binaire utilisent les mêmes méthodes que ceux en base 10 alors il suffit (en théorie) d'avoir été sage à l'école en primaire pour pouvoir se débrouiller.

Exemple



On va prendre un exemple pour illustrer : 23 / 5.
On va déjà le faire en décimal (on commence facile :p ). Je vous rappelle rapidement comment ça marche : on veut savoir combien de fois rentre 5 dans 23 et combien il reste à la fin. Pour cela, on retranche 5 une fois, on met une petite barre pour compter une fois dans la zone de droite et ainsi de suite jusqu'à ce qu'on atteigne un nombre trop petit pour le soustraire par 5 ;) .

23 divisé par 5, décimal, étape 1

Après plusieurs soustractions, les calculs donnent :

23 divisé par 5, décimal, étape 2

J'espère que c'est O.K. pour vous ? :) Si c'est le cas, bah ... vous n'aurez aucun mal avec le binaire puisque c'est exactement la même chose.

Reprenons notre exemple pour le transformer en binaire.

  • 23(10) = 10111(2)
  • 5(10) = 101(2)


Ce qui donne :

23 divisé par 5, binaire, étape 1

Maintenant il s'agit simplement d'enlever 5 jusqu'à ce que le reste soit plus petit que 5, indiquer le reste, le nombre de fois où 5 est rentré dans 23... à vous de jouer !

Correction



On corrige ? Je vous propose de le faire ensemble :) .

On soustrait 5 ce qui donne :

23(10) - 5(10) = 18(10)
10111(2) - 101(2) = ?(2)

23 divisé par 5, binaire, étape 2

Simple soustraction, on n'a pas eu besoin de prendre une dizaine. Je ne veux pas m'étendre sur les opérations donc je les mets en secret pour ceux qui veulent ;) .

Secret (cliquez pour afficher)
  • Bit n°0 : 1(2) - 1(2) = 0(2)
  • Bit n°1 : 1(2) - 0(2) = 1(2)
  • Bit n°2 : 1(2) - 1(2) = 0(2)
  • Bit n°3 : 0(2) - 0(2) = 0(2)
  • Bit n°4 : 1(2) - 0(2) = 1(2)


On vérifie :

18(10) = 10010(2)

On a réussi ! On ajoute donc 1 au nombre de fois où 5 est rentré dans 23 et ainsi de suite ;) . Le prochain calcul est donc :

18(10) - 5(10) = 13(10)
10010(2) - 101(2) = ?(2)


23 divisé par 5, binaire, étape 3

o_O J'ai rien compris à ton calcul ! Help !


Vous avez normalement du voir cette explication dans la partie sur les soustractions mais un exemple bien concret comme celui-ci vous fera pas de mal :-° .

Voyons cela bit par bit :

Bit n°0 : ça commence fort ! 0 - 1 ! Comme vous avez sûrement du le voir dans la partie précédente, le 0 va devoir emprunter à gauche un 1 pour pouvoir soustraire : ainsi, ce sera plus simple pour lui. On a donc : 10(2) - 1(2) = 1(2).

Bit n°1 : on a pas trop le choix : le zéro soustrait un zéro et ça donne un zéro :D .

Bit n°2 : si vous avez bien suivi vous voyez que le bit n°2 est un 0 qui doit soustraire un 1. Il va donc pour cela prendre une paire (une dizaine en binaire) à gauche de lui ... mais à sa gauche, il y a un zéro o_O ! On rentre dans une véritable chaîne. Le zéro (bit n°2) va prendre une paire au zéro à gauche (bit n°3) qui va lui même prendre une paire à gauche (bit n°4) :o .

Je vais maintenant vous donner une astuce qui vous rendra la vie plus facile. Arrivé au bit n°2 vous oubliez les bits d'avant (0 et 1). Et que voyez-vous ?

100(2) - 1(2) = 101(2)
4(10) - 1(10) = 3(10)


En image, cela sera sûrement plus clair :

23 divisé par 5, binaire, étape 4, masquage de bits inutiles au calcul

Ainsi il vous suffit d'inscrire le résultat dans la colonne de départ du calcul et le problème est réglé ;) .

On vérifie que le résultat obtenu est bien le bon :

13(10) = 1101(2)

On peut maintenant soustraire une nouvelle fois 5 :

13(10) - 5(10) = 8(10)
1101(2) - 101(2) = ?(2)


23 divisé par 5, binaire, étape 5

Le calcul est très simple mais il se peut que certains ne comprennent pas. Je fournis donc les calculs en secret :

Secret (cliquez pour afficher)
  • Bit n°0 : 1(2) - 1(2) = 0(2)
  • Bit n°1 : 0(2) - 0(2) = 0(2)
  • Bit n°2 : 1(2) - 1(2) = 0(2)
  • Bit n°3 : 1(2) - 0(2) = 1(2)


Vérifions que nous avons fait juste :

8(10) = 1000(2)

Passons donc au calcul suivant :

8(10) - 5(10) = 3(10)
1000(2) - 101(2) = ?(2)


23 divisé par 5, binaire, étape 6

Qu'est-ce que c'est que ça ?


Je pense qu'il est temps que l'on parle de la méthode tricherie :p . A vrai dire, c'est une méthode que j'emploie souvent car elle m'évite de faire des calculs impossibles. Cette méthode consiste à déduire le résultat binaire de la soustraction grâce à son résultat décimal.

Ici, on savait que le résultat allait être 3. Il nous suffisait donc de convertir ce nombre en binaire :

3(10) = 11(2)

On ne se préoccupe pas de savoir quels calculs il faut effectuer et on oublie pour toujours momentanément les emprunts.

On a fini au fait ^^ . Pour terminer l'opération, il nous faut écrire l'équation du calcul.

Équation du calcul



Si vous regardez dans l'image du dernier calcul, vous pouvez voir que l'on a compté 4 fois le nombre 5 dans 23 avec un reste de 3. Soit l'équation :

4(10) * 5(10) + 3(10) = 23(10)

Et donc, en binaire :

100(2) * 101(2) + 11(2) = 10111(2)

Si vous avez compris tout cela et que vous arrivez à le refaire, les divisions n'auront plus de secret pour vous.

Ce tutoriel aurait dû s'achever ainsi, vous laissant à vos divagations binaires. Cependant, il nous reste quelques détails à régler avant de se dire au revoir :) .

Divers

Avec des nombres... négatifs !



Vous avez bien lu... des nombres négatifs ! o_O

Petit exemple avec une multiplication très simple :

3(10) * (-4)(10) = -12(10)

Un bébé pourrait la faire... un bébé qui a lu ce tuto :lol: !

3 est plutôt simple à convertir étant donné qu'on l'a converti au moins trois fois dans tout le tutoriel :-° :

3(10) = 11(2)

Pour -4, il va falloir utiliser la méthode apprise dans la première partie de ce tutoriel. Reportez-vous y ;).

-4(10) = 1111 1100(2)

Le calcul est donc :

Résultat de 3 fois (-4)

Je vous ai même épargné les calculs.

Lorsque le résultat occupe un nombre de bits plus important que les membres de l'opération (comme au-dessus par exemple), il faut enlever les bits en trop en commençant par ceux de poids forts (ceux de gauche).
Bien sûr, si votre résultat est trop grand pour la variable et que vous supprimez les bits supplémentaires, ce dernier ne sera plus exact. Pour éviter cela, n'hésitez pas à écrire vos nombres avec un grand nombre de bits.

La calculatrice



Pour ne pas avoir à calculer de tête à chaque fois, utilisez donc la calculatrice de votre ordinateur en mode binaire.

Pour Windows



Sous Windows, la calculatrice se trouve dans les Accessoires depuis Programmes. allez dans Affichage, choisissez Scientifique puis Bin. Vous pouvez faire de simples conversions : tapez votre nombre dans la base souhaitée (hexadécimale, décimale, binaire ou même octale :-° ) et ensuite il suffit de sélectionner une autre base soit via les boutons, soit via le menu déroulant et votre nombre est automatiquement traduit ! Magique, hein ? :magicien:

Calculatrice Windows - Windows Vista

On peut voir ici le nombre 171(10) en base binaire, sous Windows Vista.


Pour Linux



Sous Linux il y a plusieurs calculatrices mais avec celle de base, qui se trouve dans le menu Accessoires, le principe est similaire à celui de Windows : Affichage, Programmation puis la base.

Calculatrice Linux - Ubuntu 9.10

Sous Ubuntu 9.10, la calculatrice nous montre le nombre 82(10) également sous sa forme binaire.


Pour Mac OS



Il faut passer en mode programmeur dans le menu "Présentation", ce qui permet :
  • d'utiliser la calculatrice en décimal, octogonal ou hexadécimal et d'obtenir immédiatement la conversion en binaire dans le cadre dessous.
  • de taper des nombres en binaire en cliquant sur les 0 ou 1 du cadre (la conversion dans la base souhaitée s'affiche au dessus)
  • de connaître le caractère Unicode ou ASCII correspondant au nombre entré s'affiche en haut à gauche.


Calculatrice sous MacOs

Sous Mac OS, la calculatrice nous indique le nombre 32577(10) et plus bas son équivalent binaire : 111 1111 0100 0001(2)


Merci à Zebrure pour sa capture d'écran sous Mac Os et ses commentaires sur l'utilisation de cette calculatrice.

Q.C.M.

Combien font 1011(2) + 10100(2) en base 2 ?
Multipliez 20 par 3 en binaire.

20(10) = 10100(2)
3(10) = 11(2)
J'espère que vous vous rappelez de vos tables de multiplication :p .

Quelle(s) erreur(s) se sont glissées dans la table de multiplication de ce nombre ?

101 * 0 = 0
101 * 1 = 1010
101 * 10 = 1011
101 * 11 = 1111
101 * 100 = 10101
101 * 101 = 11001

La multiplication par ...
Faites la division avec reste de 50 par 4

C'est pas évident alors allez-y doucement, vous devriez y arriver ;) .


50(10) = 110010(2)
4(10) = 100(2)

Comparez les résultats des soustractions suivantes :

11111(2) - 10000(2) = ?(2)
11010(2) - 10011(2) = ?(2)
10101(2) - 10010(2) = ?(2)

Effectuez le calcul suivant :

11(2) + 101(2) - 1110(2) + 1000(2) - 1(2) - 11(2) - 1000(2) + 10(2) + 1110(2) - 101(2)

N'ayez pas peur et soyez malin ;) .
Convertissez le résultat du calcul suivant en décimal :

(111 - 100)(111001 - 1110)(- 11 - 110 + 1 + 10 + 111)(110 - 111 + 1) + 11


Un conseil avant de vous jeter du troisième étage lancer tête baissée dans le calcul, pour ceux qui auraient quelques difficultés en mathématiques : le signe entre les différentes parenthèses est une multiplication, cela implique qu'elle aura priorité sur l'addition.

J'ai évité les petits (2) pour éviter de vous gêner mais le calcul est évident à effectuer en base binaire.

Allez-y... doucement :-° .

Statistiques de réponses au QCM


Ainsi s'achève ce tutoriel. Vous savez désormais additionner, soustraire, multiplier et diviser des nombres en binaire ! Vous allez désormais pouvoir impressionner vos proches avec les connaissances que vous avez acquises ici ;) . Bonne continuation :) .

Informations sur le tutoriel

Retour en haut Retour en haut

Créé : Le 26/06/2009 à 18:12:37
Modifié : Le 17/11/2009 à 02:04:32
Avancement : 100%

34 commentaires