jeudi 23 septembre 2010

A0117 Pour se soustraire à la soustraction

Dans les ordinateurs, il y a des circuits qui servent additionner deux nombres, mais il n'y en a pas qui servent à les soustraire. Pourquoi ? Parce que l'on a trouvé un moyen de faire des soustractions avec des additions!. L'avantage est que cela diminue la complexité de la machine, donc sa taille, donc son coût.
Techniquement le tour de passe-passe s'appelle "la représentation en complément à deux".
Mais ça n'est pas très facile à comprendre. Nous allons voir plus loin comment découvrir et comprendre la chose.

Faisons d'abord quelques rappels de représentation binaire des nombres.
Considérons une machine avec des mots de 4 bits.
On peut utiliser ces 4 bits pour représenter les entiers naturels de 0 à 15:

0000 = 0     0001 = 1     0010 = 2     0011 = 3
0100 = 4     0101 = 5     0110 = 6     0111 = 7
1000 = 8     1001 = 9     1010 = 10   1011 = 11
1100 = 12   1101 = 13   1110 = 14   1111 = 15

Maintenant, si l'on veut représenter des nombres positifs ou nuls et des nombres négatifs sur ces 4 bits, on vous dira que ça donne ça:

0000 = 0       0001 = 1      0010 = 2      0011 = 3
0100 = 4       0101 = 5      0110 = 6      0111 = 7
1000 = -8     1001 = -7     1010 = -6    1011 = -5
1100 = -4     1101 = -3     1110 = -2    1111 = -1

Ce qui est magique, c'est que pour faire 7 - 5
on ne va pas faire de soustraction mais additionner le nombre 7 et le nombre -5:

         0111
       +1011

Et pour ça on fait comme l'addition que l'on apprend à l'école primaire en décimal, avec une retenue, et comme table d'addition

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 avec une retenue de 1

         1110    <----- retenue
         0111
       +1011
----------------------
        10010

Dans ce calcul, le résultat tient sur 5 bits, mais dans les mots de la machine il n'y en a que 4, donc le résultat est
0010, soit 2 en décimal, ce qui est très satisfaisant!

La question est donc de savoir comment, quand on veut soustraire 5 (0101) on passe à -5 (1011).

Pour y répondre, pensez à votre compte en banque.

Si vous n'êtes pas très riche, vous avez pris l'habitude de ne regarder que les 4 derniers chiffres :-)

Si votre compte est à 3527 euros, et que vous retirez 2000 euros, il vous reste 1527 euros

Mais si par miracle -ou par erreur- vous recevez un virement de 8000 euros, si vous continuez à regarder les 4 derniers chiffres, vous trouvez aussi 1527 euros!

Si votre compte est à 3527 euros, et que vous retirez 2215 euros, il vous reste 1312 euros

Mais si par miracle -ou par erreur- vous recevez un virement de 7785 euros, si vous continuez à regarder les 4 derniers chiffres, vous trouvez aussi 1312 euros!

Autrement dit, à vos yeux pessimistes:

-- ajouter 8000 euros, c'est la même chose qu'en soustraire 2000
-- ajouter 7785 euros, c'est la même chose qu'en soustraire 2215

Pour économiser la soustraction -il n'y a pas de petites économies-, il suffit donc de savoir passer de:

-2000 à + 8000
-2215 à + 7785

Comment ça se passe ?

Ne répondez pas "il suffit de retrancher le nombre de départ à 10000",  puisque l'on s'interdit la soustraction!

Il faut trouver un moyen qui ne fait pas intervenir la soustraction.

Prenez d'autres exemples de couples comme 2215 et 7785 et vous allez vite vous apercevoir que:

Le second nombre se déduit du premier en remplaçant chaque chiffre par son complément à 9, sauf pour le premier, où on prend son complément à 10:

2 --> 7
1 --> 8
5 --> 5

Ce qui est est équivalent à dire:

-- on remplace chaque chiffre par son complément à 9
-- on ajoute 1 au résultat

Finalement, on s'est bien débarrassé de la soustraction en la remplaçant par un complément à 9 de chaque chiffre et une addition de 1. C'est gagné!

En décimal, le 9 est le plus grand des chiffres de 0 à 9
En binaire, le rôle du 9 est remplacé par le plus grand chiffre de 0 à 1, soit 1.

Il faut donc prendre le complément à 1 de chaque bit, ce qui revient à l'inverser:

0 --> 1
1 --> 0

Et comme
  • l'inversion d'un bit est la plus simple des opérations réalisables avec des portes logiques
  • ajouter 1 à un nombre est "gratuit" car tout additionneur comporte une entrée "retenue", qu'il suffit de mettre à 1 pour ajouter 1
on est très content: faire une soustraction avec un additionneur ne va pas nous coûter bien cher.

jeudi 16 septembre 2010

A0116 Le plus beau métier du monde

La pédagogie est l'art d'apprendre à bien comprendre aux gens qui comprennent mal, et l'art d'apprendre la pédagogie aux gens qui comprennent bien.

mardi 14 septembre 2010

A0115 Fast Food Sémantique

Beaucoup d'articles sur les ontologies prennent comme exemple la classification des  pizzas.
On ne saurait mieux avouer l'incapacité des ontologies à représenter un domaine complexe comme la gastronomie.

Ainsi le chroniqueur du Figaro François Simon expliquait récemment qu'il lui était tout à fait impossible d'établir des catégories en la matière, tellement les modes, les styles, les établissements, les chefs, les recettes, les ingrédients évoluent rapidement.

Profitons-en avant que le W3C ne s'avise d'y mettre de l'ordre.

Et rappelons que le grec ONTOS (ce qui  est) se dit en latin esse, qui vient de edo qui veut dire nourrir.
D'où essen en allemand et eat en anglais.
Nous sommes ce que nous mangeons.
Je mange donc je suis
Er ist was er isst!

vendredi 10 septembre 2010

A0113 Méthode de Conception

Il est plus facile de mettre du dur dans du mou que de mettre du mou dans du dur.

L'informatique est souvent trop dure.

Si vous vous voulez que votre projet dure, commencez par le mou.

lundi 6 septembre 2010

A0112 Retraite ou Retrait ?

31 Août: je quitte Thales, après y être entré début Avril 2003.

Je vais maintenant m'occuper du département d'enseignement et de recherche en informatique de l'ESILV (Ecole Supérieure d'Ingénieurs Léonard de Vinci), au sein du PULV (Pôle Universitaire Léonard de Vinci ), à Paris La Défense.

Ainsi, mon séjour chez Thales aura presque exactement coïncidé avec la présence des troupes américaines en Irak. Je n'aurais jamais imaginé avoir une telle influence à l'échelle géostratégique mondiale.

D'autant que, toujours comme moi, ils vont maintenant se consacrer à la formation (des troupes irakiennes) et à la recherche (de pétrole)