Arithmétique binaire

Additionner

Pour additionner deux nombres en binaire, on procède comme en décimal. On additionne les bits situés à la même position en commençant par la droite. Si le résultat ne tient pas sur un bit, il faut donner un 1 au bit suivant (en anglais, on utilise le terme carry).

Les deux situations pouvant produire des retenues sont :

1+1=2=10bin=0+10bin(poser 0 et reporter 1 sur le bit suivant)1+1+1=3=11bin=1+10bin(poser 1 et reporter 1 sur le bit suivant)\begin{array}{lclclcll} 1 + 1 &=& 2 &=& 10_{bin} &=& 0 + 10_{bin} & \text{(poser 0 et reporter 1 sur le bit suivant)} \\ 1 + 1 + 1 &=& 3 &=& 11_{bin} &=& 1 + 10_{bin} & \text{(poser 1 et reporter 1 sur le bit suivant)} \end{array}
+1 +1 +1 +1
1 0 1 1 0 1 0 0
+ 1 1 1 0 0 1 1 0
= 1 1 0 0 1 1 0 1 0

Dans l’exemple ci-dessus, nous avons additionné deux nombres sur 8 bits et obtenu une somme sur 9 bits. Dans le cas général, si nous additionnons deux nombres représentés en binaire sur MM et NN bits, le nombre de bits nécessaires pour représenter la somme ne dépassera pas 1+max(M,N)1 + max(M, N).

Soustraire

Pour soustraire deux nombres en binaire, on procède comme en décimal. On soustrait les bits situés à la même position en commençant par la droite. Si le résultat est négatif, il faut emprunter un 1 au bit suivant (en anglais, on utilise le terme borrow).

Les deux situations pouvant produire des retenues sont :

01=1=110bin(poser 1 et emprunter 1 au bit suivant)011=2=010bin(poser 0 et emprunter 1 au bit suivant)\begin{array}{lcrcll} 0 - 1 &=& -1 &=& 1 - 10_{bin}& \text{(poser 1 et emprunter 1 au bit suivant)} \\ 0 - 1 - 1 &=& -2 &=& 0 - 10_{bin}& \text{(poser 0 et emprunter 1 au bit suivant)} \end{array}
1 0 0 1 1 0 1 0
0 1 1 1 0 1 0 0
-1 -1 -1
= 0 0 1 0 0 1 1 0

En décimal, cette technique s’applique uniquement lorsque les nombres à soustraire sont positifs et lorsque le second opérande est plus petit que le premier. En binaire, nous nous autoriserons à l’utiliser dans tous les cas. Nous expliquerons pourquoi dans la section suivante concernant la représentation des nombres négatifs.

Multiplier

Dans le système décimal, nous savons que les multiplications par des puissances de dix reviennent à décaler tous les chiffres vers la gauche et à insérer des zéros aux emplacements laissés vacants.

53×1000=5300053 \times 1000 = 53000

En binaire, nous retouvons la même situation lorsque nous multiplions un nombre par une puissance de deux :

101bin×1000bin=101000bin101_{bin} \times 1000_{bin} = 101000_{bin}

Dans le cas général, la multiplication s’effectue de la même manière qu’en décimal. Multiplier par 0 ou 1 est une opération triviale, si bien qu’une multiplication en binaire se résume à des opérations de décalage et d’addition :

1 0 1 0
× 1 1 0
0 0 0 0
+ 1 0 1 0
+ 1 0 1 0
= 1 1 1 1 0 0

Dans l’exemple ci-dessus, nous avons multiplié un nombre de 4 bits par un nombre de 3 bits et obtenu un produit sur 6 bits. Dans le cas général, lorsqu’on multiplie deux nombres représentés en binaire sur MM et NN bits, le nombre de bits nécessaires pour représenter le produit ne dépassera pas M+NM + N.

Résumé

Les opérations d’addition, de soustraction et de multiplication en binaire suivent les mêmes règles que dans le système décimal.

Multiplier un nombre par 2N2^N revient à décaler sa représentation binaire de NN bits vers la gauche.

Pour deux nombres représentés en binaire sur MM et NN bits,