Sagot :
Bonjour,
On va d'abord regarder avec des nombres que l 'on connait bien, donc en base 10.
Faudrait trouver un moyen de faire des soustractions en faisant des additions!
Quand j'écris 1 ou 01 ou 000001 ou une infinité de 0 avant le 1 ça change pas le chiffre, n'est-ce-pas?
Et je cherche quelque chose de positif qui ajouté à 1 fasse 0.
Si je prends un chiffre avec une infinité de 9, donc 9999999999999...9999
Je fais l addition de
9999...9999
+
000...0001
=
000...000
9 + 1 =0 et je retiens 1
9+1=0 et je retiens 1 etc
Bien sur, ça "marche" parce que j'ai une infinité de 9
On peut donc interpréter 99999...9999 comme étant l'opposé de 1, à savoir -1
Maintenant prenons 2, quelle est son opposé ?
9999999999999...999999999998
pour 7, son opposé est
999...9999993
pour 12, son opposé est
999...9988
De cette manière on conserve les propriétés de l addition
Revenons maintenant aux ordinateurs qui ne connaissent que 0 et 1.
On va donc passer en binaire.
1 sur 8 bits sera 00000001
Quel peut être son opposé?
11111111
En effet, en sommant les deux on obtient 00000000 (ne pas oublier les retenus)
Le premier chiffre va représenter le signe et on pourra représenter les relatifs de -128 a 127 sur 8 bits, [tex]-2^7 \leq n\leq 2^7-1[/tex] (ne pas oublier le 0). En gros, l'infini est tronqué par les capacités de la machine (ici 8 bits) si je peux dire et rend le raisonnement valable.
En pratique, on peut inverser les bits et ajouter 1 pour avoir l opposé d un entier.
Pour 1, qui est 00000001 ça donne 11111110+1=11111111 et c'est bien son oppposé.
Par contre, on a une limite. avec 8 bits, on ne peut représenter qu 'un certain nombre d'entiers de -128 a 127.
Du coup, quand on cherche l 'oppposé de -128 on sort du cadre, et on "tourne" en rond.
le complément à 2 de -128 est , 01111111+1=10000000
c'est donc -128
En espérant t'avoir aidé
merci