Vous êtes sur la page 1sur 8

Algorithmes et programmation 4 Sciences informatiques

Conversion entre les bases (Algorithmes)

Fonction qui convertit de la base décimale à la base binaire :

Fonction Conv_10_2(x : entier) : chaine


Début
Ch  ""
Répéter
r  x mod 2
x  x div 2
ch  convch(r) + ch
jusqu’à ( x = 0)
Retourner ch
Fin

TDOL
Objet Type/Nature
Ch Chaine
r Entier

Fonction qui convertit de la base binaire à la base décimale :

Fonction Conv_2_10(ch : chaine) : entier


Début
s0
p1
Pour i de long(ch) – 1 à 0 (pas = -1) faire
s  s + p * valeur(ch[i])
pp*2
Fin pour
Retourner s
Fin

TDOL
Objet Type/Nature
S, P, i entier

1
| M Aymen Cherif
Algorithmes et programmation 4 Sciences informatiques

Fonction qui convertit de la base décimale à une base b :

Fonction Conv_10_b (x, b : entier) : chaine


Début
ch  ""
Répéter
r  x mod b
x  x div b
si r < 10 alors
ch  convch(r) + ch
sinon
ch  chr(r + 55) + ch
Fin si
Jusqu’à (x = 0)
Retourner ch
Fin

TDOL
Objet Type/Nature
Ch Chaine
r entier

Fonction qui convertit d’une base b à la base décimale :

Fonction Conv_b_10(ch : chaine ; b :entier) : entier


Début
s0
p1
Pour i de long(ch) – 1 à 0 (pas = -1) faire
Si ch[i] є ["0".."9"] alors
s  s + p * valeur(ch[i])
Sinon
s  s + p * (ord(ch[i]) – 55 )
Fin si
pp*b
Fin pour
Retourner s
Fin

TDOL
Objet Type/Nature
S, P, i entier

2
| M Aymen Cherif
Algorithmes et programmation 4 Sciences informatiques

Fonction qui convertit de la base 8 à la base binaire :

Fonction Conv_8 _2(ch : chaine ) : chaine


Début
Chb  ""
Pour i de 0 à long(ch) – 1 faire
x  valeur(ch[i]
Chx  ""
Tant que x ≠ 0 faire
r  x mod 2
chx  convch(r) + chx
x  x div 2
Fin tant que
Tant que long(chx) ≠ 3 faire
Chx  "0" + chx
Fin tant que
chb  chb + chx
Fin pour
Tant que chb[0] = "0" Faire
Chb  effacer(chb, 0, 1)
Fin tant que
Retourner chb
Fin

TDOL
Objet Type/Nature
Nb, i, x, r Entier
Chb, chx chaine

3
| M Aymen Cherif
Algorithmes et programmation 4 Sciences informatiques

Fonction qui convertit de la base 16 à la base binaire :

Fonction Conv_16_2(ch : chaine) : chaine


Début
Chb  ""
Pour i de 0 à long(ch) – 1 faire
Si ch[i] є ["0".."9"] alors
x  valeur(ch[i]
sinon
x  ord(ch[i]) – 55
Fin si
Chx  ""
Tant que x ≠ 0 faire
r  x mod 2
chx  convch(r) + chx
x  x div 2
Fin tant que
Tant que long(chx) ≠ 4 faire
Chx  "0" + chx
Fin tant que
chb  chb + chx
Fin pour
Tant que chb[0] = "0" Faire
Chb  effacer(chb, 0, 1)
Fin tant que
Retourner chb
Fin

TDOL
Objet Type/Nature
Nb, i, x, r Entier
Chb, chx chaine

4
| M Aymen Cherif
Algorithmes et programmation 4 Sciences informatiques

Fonction qui convertit de la base 8 ou 16 à la base binaire :

Fonction Conv_8_Or_16_To_2(ch : chaine ; b :entier) : chaine


Début
Si b = 8 alors
nb  3
Sinon
nb  4
Fin si
Chb  ""
Pour i de 0 à long(ch) – 1 faire
Si ch[i] є ["0".."9"] alors
x  valeur(ch[i]
sinon
x  ord(ch[i]) – 55
Fin si
Chx  ""
Tant que x ≠ 0 faire
r  x mod 2
chx  convch(r) + chx
x  x div 2
Fin tant que
Tant que long(chx) ≠ nb faire
Chx  "0" + chx
Fin tant que
chb  chb + chx
Fin pour
Tant que chb[0] = "0" Faire
Chb  effacer(chb, 0, 1)
Fin tant que
Retourner chb
Fin

TDOL
Objet Type/Nature
Nb, i, x, r Entier
Chb, chx chaine

5
| M Aymen Cherif
Algorithmes et programmation 4 Sciences informatiques

Fonction qui convertit de la base binaire à la base 8 :

Fonction Conv_2_8(chb : chaine) : chaine


Début
Ch  ""
Tant que long(chb) mod 3 ≠ 0 faire
chb  "0" + chb
Fin tant que
Répéter
Chx  sous_chaine(chb, 0, 3)
Chb  effacer(chb, 0, 3)
s0
p1
Pour i de 2 à 0 (pas = -1) faire
Si chx[i] = "1" alors
ss+p
Fin si
pp*2
Fin pour
Ch  ch + convch(s)
Jusqu’à chb = ""
Retourner ch
Fin

TDOL
Objet Type/Nature
s, p, i Entier
Ch, chx, chaine

6
| M Aymen Cherif
Algorithmes et programmation 4 Sciences informatiques

Fonction qui convertit de la base binaire à la base 16 :

Fonction Conv_2_16(chb : chaine ) : chaine


Début
Ch  ""
Tant que long(chb) mod 4 ≠ 0 faire
chb  "0" + chb
Fin tant que
Répéter
Chx  sous_chaine(chb, 0, 4)
Chb  effacer(chb, 0, 4)
s0
p1
Pour i de 3 à 0 (pas = -1) faire
Si chx[i] = "1" alors
ss+p
Fin si
pp*2
Fin pour
Si s < 10 alors
Ch  ch + convch(s)
Sinon
Ch  ch + chr(s + 55)
Fin si
Jusqu’à chb = ""
Retourner ch
Fin

TDOL
Objet Type/Nature
s, p, i Entier
Ch, chx, chaine

7
| M Aymen Cherif
Algorithmes et programmation 4 Sciences informatiques

Fonction qui convertit de la base binaire à la base 8 ou 16 :

Fonction Conv_2_To_8_Or_16(chb : chaine ; b :entier) : chaine


Début
Si b = 8 alors
nb  3
Sinon
nb  4
Fin si
Ch  ""
Tant que long(chb) mod nb ≠ 0 faire
chb  "0" + chb
Fin tant que
Répéter
Chx  sous_chaine(chb, 0, nb)
Chb  effacer(chb, 0, nb)
s0
p1
Pour i de long(chx) – 1 à 0 (pas = -1) faire
Si chx[i] = "1" alors
ss+p
Fin si
pp*2
Fin pour
Si s < 10 alors
Ch  ch + convch(s)
Sinon
Ch  ch + chr(s + 55)
Fin si
Jusqu’à chb = ""
Retourner ch
Fin

TDOL
Objet Type/Nature
Nb, s, p, i Entier
Ch, chx, chaine

8
| M Aymen Cherif

Vous aimerez peut-être aussi