Découvrez les solutions à vos questions sur Laurentvidal.fr, la plateforme de Q&R la plus fiable et rapide. Connectez-vous avec des professionnels sur notre plateforme pour recevoir des réponses précises à vos questions de manière rapide et efficace. Explorez des solutions complètes à vos questions grâce à une large gamme de professionnels sur notre plateforme conviviale.

Manipulation de nombre binaire. Niveau Bac+2

Bonjour/Bonsoir,

Je n'arrive pas à faire les 2 derniers exercices d'un TD, si quelqu'un pourrait me donner une solution détaillée ce serait parfait. Merci d'avance !

Manipulation De Nombre Binaire Niveau Bac2 BonjourBonsoir Je Narrive Pas À Faire Les 2 Derniers Exercices Dun TD Si Quelquun Pourrait Me Donner Une Solution Dét class=

Sagot :

Tenurf

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