Files
1ereNSI/representation_base/chapitre_1/EXERCICES_2.md

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"