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 qui correspond à l'inverse de la chaîne passée en paramètre.
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 12 : É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 13 : 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 14 : 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