IFT-17583

Structure interne des ordinateurs

Arithmétique

 

Complément à 2

Une truc rapide pour trouver le complément à 2 m'a été fourni par l'un d'entre vous (merci!). Il consiste à repérer le premier 1 à partir de la droite (ou le dernier 1 à partir de la gauche) et à complémenter tous les bits à gauche de ce dernier. Les autres bits sont laissés intacts.

Exemple : 0000 1100.

On inverse les 5 bits à gauche du premier 1 à partir de la droite (en rouge), ce qui donne 1111 0100.

Exemple : 1111 1111

On inverse les 7 bits à gauche du premier 1 de droite, ce qui donne 0000 0001.

 

Soustraction binaire

Dans la soustraction binaire, on procède comme en décimal. Quand la quantité à soustraire est supérieure à la quantité dont on soustrait, on emprunte 1 au voisin de gauche. En binaire, ce 1 ajoute 2 à la quantité dont on soustrait, tandis qu'en décimal il ajoute 10.

Dans l'exemple suivant, on doit soustraire 0 - 1 pour le bit de droite. On emprunte 1 au bit de gauche et on a maintenant 10 - 1, i.e. 2 - 1 = 1. Ensuite on retranche cet emprunt du bit de gauche, et on a 1 - 0 - 1 = 0.

Voici une animation d'une soustraction qui contient tous les cas possibles :


 

 

 

Division binaire

La division binaire s'effectue à l'aide de soustractions et de décalages, comme la division décimale, sauf que les digits du quotient ne peuvent être que 1 ou 0. Le bit du quotient est 1 si on peut soustraire le diviseur, sinon il est 0. Voici une animation de la division du nombre 100100001112 par 10112 = 11010012 reste 1002, c'est-à-dire 1159 / 11 = 105, reste 4.

 

Voici la même division telle qu'effectuée par un ordinateur :

 

Arithmétique hexadécimale

Pour effectuer les opérations binaires, il est souvent plus rapide et moins sujet à l'erreur de travailler en hexadécimal.

 

Addition

Par exemple 11001101110012 + 11000111111001102 devient 19B916 + C7E616. Cette addition s'effectue comme en décimal, sauf que qu'on génère une retenue lorsqu'une somme partielle dépasse 16 au lieu de 10 :
 

 

Soustraction

La même chose vaut pour la soustraction. Quand le nombre du bas dépasse celui du haut, on fait un emprunt au chiffre de gauche et on ajoute 16 au nombre du haut :
 


 

 

Multiplication

La multiplication binaire de nombres assez longs est difficile en raison du grand nombre de retenues dans la somme finale et on se trompe très souvent. On peut l'effectuer plus facilement en hexadécimal si on dispose de la table de multiplication appropriée que vous trouverez ci-dessous.

Par exemple, 1101 0100 11012 x 1010112 devient B4D x 2B . On effectue comme en décimal les produits partiels qu'on additionne ensuite.

Si on a de la difficulté avec les retenues, on peut effectuer ces sommes deux par deux :

 


 

et finalement :
 

et
 

 

Notation BCD

Une notation fréquemment utilisée dans les ordinateurs est la notation BCD (Binary Coded Decimal). Dans cette notation, chaque chiffre du nombre décimal est représenté en binaire, soit sur 4 bits (BCD compacté), soit sur 8 bits.

Par exemple, en BCD compacté, 12810 s'écrit donc :

0001 0010 1000

À l'exception de certaines calculettes, peu d'ordinateurs utilisent cette notation, car elle prend plus d'espace mémoire que le binaire. En effet, toutes les combinaisons de bits supérieures à 1001 (9) sont inutilisées. Cependant, c'est une étape intermédiaire indispensable quand on veut passer du décimal au binaire ou du binaire au décimal.

Voici comment on peut effectuer l'addition en BCD. Si l'on additionne en arithmétique binaire les codes BCD correspondant à des chiffres dont la somme ne dépasse pas 9, on aura évidemment un résultat donnant la représentation correcte de la somme DCB. Par exemple, 45 + 31 donnent bien 76 :

Cependant, dès que la somme dépasse 9 dans un motif de 4 bits, il faut apporter une correction. Par exemple, si on additionne 8 + 6, on obtient 1110, qui excède l'intervalle de définition d'un digit BCD. On voit cependant que si on ajoute 6 à ce résultat, on obtient bien la représentation BCD de 14:

On effectue donc l'addition en motifs de 4 bits. Si le résultat dépasse 9 pour l'un ou plusieurs de ces motifs, on leur ajoute 6 pour forcer une retenue et on obtient le résultat escompté en BCD :

 

Dernière mise à jour : 2000-10-06