Ardu? No!Bric-à-brac ≫ Faire une soustraction en base 10

Faire une soustraction
en base 10

Les soustractions en base 10 (celle que l'on apprend à faire en primaire) ne sont pas les opérations préférées. Si on a par exemple:

 2469213
-1258992
========

On commence par les unités. Pour l'instant tout va bien 3-2 fait 1. On peut continuer avec les dizaines. Mais la le diable guette et on a 1-9. Cela se complique. Comme 1 ce n'est pas assez, on va emprunter une dizaine (Dieu ne sait où). On met un petit 1 à côté du 1 des dizaines et on fera 11-9. Le petit 1 représente dix et 11 veut dire 11. On n'aime pas les sosutractions, mais on finit par trouver que 11-9 font 2. Le problème maintenant qu'il faut rendre la dizaine à la colonne d'après. On met un petit 1 à côté du 9 des centaines. On a alors 19 qui veut dire 1+9 et pas 19, on ne sait plus bien si ce 1 doit se mettre en bas ou en haut, et on finit par dire qu'on a oublié comment faire et que de toutes façons on a un téléphonne qui fait calculatrice.

Mais nous nous avons appris le binaire, les nombres négatifs et nous savons bien mieux faire des additions que des soustractions. On se rapellera que pour soustraire en binaire deux nombres, on ajoute le premier avec le complément à 2 du deuxième auquel on ajoute encore 1. Les nombres ont un nombre de bits fixe et limité, et que l'on ne se préoccupe pas du dépassement final. On peut faire pareil en décimal.

Au lieu de faire la soustraction:

 2469213
-1258992
========

Nous allons faire l'addition:

 (+2469213)
+(-1258992)
===========

Du coup on a une addition à faire au lieu d'une sosutraction, et c'est plus facile.

Au lieu d'utiliser ue représentation "signe + valeur absolue) comme d'habitude, nous allons faire comme en binaire, utiliser le chiffre de poids fort comme bit de signe. Un nombre qui commence par 0, 1, 2, 3, 4 sera positif, un nombre qui commence par 5, 6, 7, 8 ou 9 sera négatif. Pour avoir le nombre -1258992, il faut prendre le complément à 9 de chaque chiffre. Pour le complément à 2, on remplaçait les chiffres suivant la table:

   0 <--> 1

On remplace les 0 par des 1 et les 1 par des 0. En base 10 pour avoir le complément à 9, il faut faire les remplacements:

  0 <--> 9
  1 <--> 8
  2 <--> 7
  3 <--> 6
  4 <--> 5

On va donc travailler sur 7 chiffres, le complément à 9 est 8741007:

-1258992
 ↓↓↓↓↓↓↓
=8741007

et -1258993 c'est le nombre ci-dessus plus 1:

-1258993 = 8741008

Maintenant, on n'a plus que l'addition à faire:

1 1 1 1 1
2 4 6 9 2 1 3
+ 8 7 4 1 0 0 8
= = = = = = = =
1 2 1 0 2 2 1

Notez qu'il u a une retenue sur la huitième colonne, mais on a décidé de faire les calculs sur 7 digits seulement. Vous pouvez d'ailleurs faire l'essai sur 8 digits ou plus, on obtient toujours le même résultat.

Bilan, on a fait:

 2469213
-1258992
========
 1210221

Mais sans utiliser la soustraction!