3.4 KiB
Exercices : Représentation des nombres naturels
Manipulation
Question 1 : Écrire une fonction est_valide(binaire) qui retourne :
- True si le nombre est valide
- False si le nombre est invalide. Le paramètre de la fonction sera une chaîne de caractères représentant un nombre écrit en base 2.
>>> est_valide("100010101")
True
>>> est_valide("1010401034")
False
Question 2 : Écrire une fonction est_pair(binaire) qui retourne :
- True si le nombre passé en paramètre est pair
- False si le nombre passé en paramètre est impair. Le paramètre de la fonction sera une chaîne de caractères représentant un nombre écrit en base 2.
>>> est_paire('1001')
False
>>> est_paire('1010')
True
Conversion Binaire - Décimal
Question 3 : Écrire une fonction deux_puissance(rang) qui retourne la puissance de 2 associée au rang passé en paramètre. Vous n'utiliserez pas les fonctions Python déjà existantes.
>>> deux_puissance(0)
1
>>> deux_puissance(1)
2
>>> deux_puissance(2)
4
Question 4 : A l'aide des fonctions précédentes, écrire une fonction binaire_en_decimal(binaire) qui retourne la valeur décimale du nombre passé en paramètre. Le paramètre sera une chaîne de caractères représentant un nombre binaire. On vérifiera que ce nombre binaire est valide.
>>> binaire_en_decimal("1")
1
>>> binaire_en_decimal("1010")
10
>>> binaire_en_decimal("1001")
9
Conversion Décimal - Binaire
Question 5 : Écrire une fonction division_euclidienne(nombre, diviseur) qui retourne le quotient et le reste obtenu lorsque l'on divise le paramètre nombre par le paramètre diviseur.
>>> division_euclidienne(6,3)
(2,0)
>>> division_euclidienne(10,4)
(2,2)
>>> reste(6, 0)
None
Question 6 : A l'aide de l'algorithme de la division euclidienne et des fonctions précédentes, écrire une fonction decimal_en_binaire(*decimal*) qui retourne une chaîne de caractères correspondant à la représentation binaire du nombre passé en paramètre.
>>> decimal_en_binaire(16)
"10000"
>>> decimal_en_binaire(31)
"11111"
Conversion Décimal - Hexadécimal
Question 7 : Écrire une fonction symbole_hexa(decimal) qui retourne le symbole correspondant au paramètre dans la base 16.
>>> symbole_hexa(1)
"1"
>>> symbole_hexa(10)
"A"
Question 8 : En s'inspirant des questions précédentes, écrire une fonction decimal_en_hexa(decimal) qui retourne une chaîne de caractères correspondant à la représentation en base 16 du nombre passé en paramètre.
>>> decimal_en_hexa(21)
"15"
>>> decimal_en_hexa(2019)
"7E3"
Conversion Hexadécimal - Décimal
Question 9 : écrire une fonction hexa_en_decimal(hexa) qui retourne le nombre correspondant à la représentation en base 10 du nombre passé en paramètre.
>>> hexa_en_decimal("A")
10
>>> decimal_en_hexa("E10F")
57615
Conversion en base n
Question 10 : En s'inspirant des fonctions 8 et 10, écrire une fonction decimal_en_base_n(decimal, base) qui retourne une chaîne de caractères correspondant à la représentation en base n du nombre passé en paramètre.
>>> decimal_en_base_n(10,2)
"1010"
>>> decimal_en_base_n(10,16)
"A"
>>> decimal_en_base_n(10,5)
"20"