Aller au contenu

Exercices : Représentation des nombres relatifs

Complément à deux

Question 1 : Écrire une fonction valeur_absolue(nombre) qui retourne la valeur absolue du nombre passé en paramètre.

>>> valeur_absolue(7)
7
>>> valeur_absolue(-6)
6

Question 2 : Écrire une fonction inverse(binaire) qui retourne une nouvelle chaîne de caractères dans laquelle on aurait inversé chaque bit

Le paramètre de la fonction sera une chaîne de caractères représentant un nombre écrit en base 2.

>>> inverse("1010")
"0101"
>>> inverse("10110011")
"01001100"

Question 3 : Écrire une fonction addition_binaire(binaire1,binaire2) qui additionne et retourne le résultat des 2 nombres représentés en base 2. Vous vous aiderez de la table d'addition vu dans le cours.

>>> addition_binaire("1001","0001")
"1010"
>>> addition_binaire("0001","0001")
"0010"

Question 4 : En utilisant les fonctions précédentes, écrire une fonction complement_a_2(decimal, nombre_bit) qui retourne la représentation en complément à 2 du nombre donné en paramètre.

>>> complement_a_deux(-12, 8)
"11110100"
>>> complement_a_deux(7,8)
"00000111"

Question 5 : En utilisant le principe inverse, écrire une fonction complement_a_2_vers_decimal(binaire) qui retourne la valeur du nombre représenté en complément à 2 passé en paramètre. Vous aurez besoin d'écrire une fonction qui effectue la soustraction de 2 nombres binaires.

>>> complement_a_2_vers_decimal("1111")
-1
>>>> complement_a_2_vers_decimal('0111")
7