0% ont trouvé ce document utile (0 vote)
68 vues40 pages

Cours conversionQT

Le document traite des conversions entre différentes bases numériques, notamment de la base 10 à la base 2, 8 et 16, ainsi que des algorithmes et implémentations Python pour effectuer ces conversions. Il présente également des méthodes pour convertir des nombres d'une base à une autre, en utilisant des tableaux inversés et des fonctions générales. Enfin, des exemples de conversion de nombres hexadécimaux et octaux en binaire sont fournis.

Transféré par

souhailfatnassi20
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
68 vues40 pages

Cours conversionQT

Le document traite des conversions entre différentes bases numériques, notamment de la base 10 à la base 2, 8 et 16, ainsi que des algorithmes et implémentations Python pour effectuer ces conversions. Il présente également des méthodes pour convertir des nombres d'une base à une autre, en utilisant des tableaux inversés et des fonctions générales. Enfin, des exemples de conversion de nombres hexadécimaux et octaux en binaire sont fournis.

Transféré par

souhailfatnassi20
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Conversion entre base

base 10 : 0 ,1,2,3,4,5,6,7,8, 9

base 2 : 0 ,1

base 8 : 0,1,2,3,4,5,6,7

base 16 : 0, 1,2,3,4,5,6,7,8,9, A ( 10), B (11),


C(12), D(13), E (14),et F(15)
Conversion entre base

chaine chaine
2 2
conv2_10 Conv10_2
entier

conv8_10 Conv10_8
chaine 8 10 8 chaine

conv16_10 Conv10_16

chaine 16 16 chaine

convB_10 Conv10_B
Conversion de la base 10 a la base 2 :
(57)10 = (…………….)2 (18)10 = (………….….)2
Conversion de la base 10 a la base 2 :

En algorithme Python avec chaine


Fonction conver10_2( N :entier ) : chaîne def conver10_2(n):
Début ch=""
ch"" while (n !=0):
Tant que (N ≠0) Faire r= n % 2
r  N mod 2 ch=str(r)+ch
chconvch(r) +ch n//=2
N N div2 return ch
Fin Tant Que
retourner ch
Fin
Conversion en utilisant un tableau inversé

 Python avec tableau inversé


Procédure conver10_2( N :entier ; @T :Tab ; @ m : entier)
Début
m-1
Tant que (N ≠0) Faire
m m+1
t[m]  n mod 2
N  N div2
Fin Tant Que
Fin

Exécuter la procédure conver10_2 avec n=17


Conversion de la base 10 a la base 8 :

Exp : 125(10) = ……(8)


Conversion de la base 10 a la base 8 :

En algorithme Python avec chaine


Fonction conver10_8( N :entier ) : chaîne def conver10_8(n):
Début ch=""
ch"" while (n //8 !=0):
Tant que (N ≠0) Faire r= n % 8
r  n mod 8 ch=str(r)+ch
chconvch(r) +ch n//=8
N N div8 return ch
Fin Tant Que
retourner ch
Fin
Conversion de la base 10 a la base 16 :

125(10) = ….........(16)
430(10) = ……….(16)
335(10) = ………..(16)
Conversion de la base 10 a la base 16 :

En algorithme Python avec chaine


Fonction conver10_16( N :entier ) : chaîne def conver10_16(n):
Début ch=""
ch"" while n!=0:
Tant que (N ≠0) Faire r=n%16
r  n mod 16 if r<=9:
si r<=9 alors ch=str(r)+ch
chconvch(r) +ch else:
sinon ch=chr(r+55)+ch
chchr(r+55) +ch n//=16
finsi return ch
N N div16
Fin Tant Que
retourner ch
Fin
2ème solution 3ème solution
Fonction conver10_16( N :entier ) : chaîne Fonction conver10_16( N :entier ) : chaîne
Début Début
ch"" ch1  « 0123456789ABCDEF"
Tant que (N ≠0) Faire ch""
r  n mod 16 Tant que (N ≠0) Faire
si r<=9 alors r  n mod 16
chconvch(r) +ch chch1[r] +ch
sinon N N div16
Selon r Fin Tant Que
10 : c  "A" retourner ch
11 : c  "B" Fin
12 : c  "C"
13 : c  "D"
14 : c  "E"
15 : c  "F"
fin selon
ch c +ch
finsi
N N div16
Fin Tant Que
retourner ch
Fin
Forme générale : 10_B
En algorithme Python avec chaine
Fonction conver10_B( N,B :entier ) : chaîne def conver10_B(n,b):
Début ch=""
ch"" while n!=0:
Tant que (N ≠0) Faire r=n%b
r  n mod B if r<=9:
si r<=9 alors ch=str(r)+ch
chconvch(r) +ch else:
sinon ch=chr(r+55)+ch
chchr(r+55) +ch n//=b
finsi return ch
N N divB
Fin Tant Que
retourner ch
Fin

Appel : ch2  conver10_B( , )  X(10)=ana(n-1)a(n-2)….a3a2a1a0 (b)


ch8  conver10_B( , )
ch16  conver10_B( , )
Application

Ecrire un script en python qui permet de saisir un entier


naturel n (n>0)et d’afficher son convertion dans la base 2,8
et 16 sous la forme suivantes:

(N)10 = (......)2
(N)10 = (......)8
(N)10 = (......)16

En utilisant la fonction générale de la conversion.


 De la base octal à la base décimal: 175

 De la base hexadécimal à la base décimal : 14F

 De la base B à la base décimal :


18BF

Un chiffre hexadécimal correspond à 4 bits, il suffit de convertir en 4 bits chaque chiffre du


nombre hexadécimal et de les assembler dans le l'ordre.
Exemple : Conversion du nombre Hexadécimal 18BF en Binaire
18BF
====
0001 1000 1001 1111
Le nombre (18BF)16 vaut (0001100010011111)2
Les zéro en bleu ne servent à rien, on doit les supprimer, donc
Le nombre (18BF)16 vaut (1100010011111)2
Le plus grand chiffre octal est 7, qui convertit en binaire, donne 111
Donc un chiffre de l'octal correspond à 3 bits, il suffit de grouper par 3 les chiffres du nombre
binaire puis de convertir chaque groupe on utilisant le système de pondération. L'assemblage
dans l'ordre des chiffres trouvés donne le nombre octal correspondant.
Exemple : Conversion du nombre binaire 1001100101 en Octal
1 001 100 101
====
1*20 0*22 + 0*21+ 1*20 1*22 + 0*21+ 0*20 1*22 + 0*21+ 1*20
====
1145
Le nombre (1001100101)2 = (1145)8
Conversion d'une base B en une base B2
Ecrire un programme modulaire nommé B1_B2, qui permet de convertir un nombre N d’une base B1
en une base B2. Sachant que ( 2 ≤ B1 ≤ 16) et ( 2 ≤ B1 ≤ 16) et (B1 ≠ B2).

Fonction Convert (NB1 : Chaîne; B1, B2 : Entier ) : Chaîne


Début
NB10  Convert_B10 (NB1, B1)
Ch_B2  Convert_B2 (NB10, B2)
retourner Ch_B2
Fin

Vous aimerez peut-être aussi