Conversion entre les bases de numération
1. Présentation
Les étapes que nous avons suivi pour réaliser la conversion d’un nombre entier positif
en binaire sont :
Faire une division par 2.
Ranger le reste et changer la valeur de n par n div 2.
Répéter les étapes 1 et 2 jusqu’à avoir n = 0.
2. Définition
Convertir un entier positif N dans une base b au moins égale à 2 consiste à chercher la représentation
de N dans la base b. En effet, dans un système de numération b, tout entier positif N admet une et une
seule décomposition
3. Applications
a) Application 1
Ecrire une fonction son implémentation en Python qui permet de convertir
un nombre entier positif N en binaire. La conversion se fera de la base de
numération 10 (ou base décimale) a la base 2 (ou base binaire).
Solution
Algorithme Python
Fonction conv2(n : entier) : chaîne def conv2(n):
Début ch=""
ch"" while n !=0:
Tant que n ±0 faire ch=ch+ str( n % 2)
Chch+ convch( n mod 2) n= n//2
N n div 2 ch1=""
Fin Tant que for i in range (len(ch)-1,-1,-1):
ch1"" ch1=ch1+ch[i]
Pour i de long(ch)-1 à 0 pas=-1 faire return ch1
ch1ch1+ch[i]
Fin pour
Retourner ch1
Fin
T.D.O.L
Objet Type / nature
Ch, ch1 Chaîne
i Entier
b) Application 2
Ecrire une fonction son implémentation en Python qui permet de convertir un
nombre entier positif N en base8.
Solution
Algorithme Python
Fonction conv8(n : entier) : chaîne def conv8(n):
Début ch=""
ch"" while n !=0:
Tant que n ±0 faire ch=ch+ str( n % 8)
Chch+ convch( n mod 8) n= n//8
N n div 8 ch1=""
Fin Tant que for i in range (len(ch)-1,-1,-1):
ch1"" ch1=ch1+ch[i]
Pour i de long(ch)-1 à 0 pas=-1 faire return ch1
ch1ch1+ch[i]
Fin pour
Retourner ch1
Fin
T.D.O.L
Objet Type / nature
Ch, ch1 Chaîne
i Entier
c) Application 3
Ecrire une fonction son implémentation en Python qui permet de convertir un nombre entier positif N
en base16.
Solution
Algorithme Python
Fonction conv8(n : entier) : chaîne def conv16(n):
Début ch=""
ch"" while n !=0:
Tant que n ±0 faire r= n % 16
r=n mod 16 if 0<=r<=9 :
si r dans [0..9] alors ch=ch +str(r)
Chch+ convch( r) else:
Sinon ch=ch+chr(ord('A')+ r- 10)
Ch ch+ chr(ord("A")+ r – n= n//16
10) ch1=""
Fin si for i in range (len(ch)-1,-1,-1):
n n div 16 ch1=ch1+ch[i]
Fin Tant que return ch1
ch1""
Pour i de long(ch)-1 à 0 pas=-1 faire
ch1ch1+ch[i]
Fin pour
Retourner ch1
Fin
T.D.O.L
Objet Type /
nature
Ch, ch1 Chaîne
i, r Entier