Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
système décimal 10
système binaire 2
système octal 8
système hexadécimal 16
Le système décimal est un système de calcul de base 10, c'est-à-dire que les
chiffres ne peuvent prendre que la valeur 0 , 1,2,3,4,5,6,7,8, ou 9
Le système binaire est un système de calcul de base 2, c'est-à-dire que les
chiffres ne peuvent prendre que la valeur 0 ou 1.
Le système octal est un système de calcul de base 8, c'est-à-dire que les
chiffres ne peuvent prendre que la valeur 0 , 1,2,3,4,5,6 ou 7
Le système hexadécimal est un système de calcul de base 16, c'est-à-dire que
les chiffres ne peuvent prendre que la valeur 0 , 1,2,3,4,5,6,7,8,9, A ( 10), B
(11), C(12), D(13), E (14),et F(15)
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
Conversion d’un entier de la base 10 à la base (b). 2
Il s'agit de faire une suite de divisions euclidiennes par b, Jusqu’à
avoir un quotient est égal à zéro.
Le résultat sera la juxtaposition des restes.
X(10)=ana(n-1)a(n-2)….a3a2a1a0 (b)
Conversion d’un entier de la base 10 vers la base 2.
Il s'agit de faire une suite de divisions
euclidiennes par 2. Jusqu’à avoir un
quotient est égal à zéro. Le résultat
sera la juxtaposition des restes.
NB : le reste ( 0 ou 1)
Conversion d’un entier de la base 10 vers la base 8.
Il s'agit de faire une suite de
divisions euclidiennes par 8.
Jusqu’à avoir un quotient est égal
à zéro. Le résultat sera la
juxtaposition des restes.
Nb : le reste( de 0 à 7)
Exp : 125(10) = 175(8)
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
Conversion d’un entier de la base 10 vers la base 16. 3
Il s'agit de faire une suite de divisions euclidiennes par 16. Jusqu’à
avoir un quotient est égal à
zéro. Le résultat sera la
juxtaposition des restes.
Nb : le reste( de 0 à 15)
Exemples :
125(10) = 7D(16) avec (13 = D)
430(10) = 1AE(16) avec ( 14 = E , 10 = A)
335(10) = 14F(16) avec ( 15 = F)
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
Activité 1 : Conversion d’un entier de la base 10 vers la base 2. 4
On se propose de saisir un entier N positif.
On se propose de convertir N ( qui est évidemment un entier de la base 10)
vers la base 2 (le système binaire).
Il s'agit de faire une suite de divisions
euclidiennes par 2. Jusqu’à avoir un
quotient est égal à zéro.
On doit récupérer le reste de la
division euclidienne,
Méthode 1 :
On fait une concaténation de chaque reste obtenu,
exemple Ch="01001"
On cherche l’inverse de cette chaîne invers de ch ="10010", puis on la
convertie en un entier.
Méthode 2 : Tableau
Chaque reste de la division euclidienne, on le met dans une case dans
un tableau T.
T 0 1 0 0 1
indice 0 1 2 3 4
On forme une chaîne du dernier élément jusqu’au premier ( de m-1 à
la case 0 (pas=-1)
Ce qui donne ch ="10010"
Puis on converti ch en entier.
Méthode 1 :
Algorithme de la décomposition modulaire ( programme principal)
Début
Ecrire ( "la conversion de la base 10 à la base 2")
saisie(N)
chconversion2(N)
n_b2formerNB(ch)
Ecrire (N, " dans la base 10 = ",n_b2, "dans la base 2")
Fin
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
TDO Globaux 5
Objet Type
N, n_b2 Entier
ch Chaîne
Les algorithmes des modules Saisie Procédure
Procédure saisie( @ N : entier ) conversion2, Fonction
début formerNB Fonction
Répéter
Ecrire (" donner un entier n positf ")
Lire (n)
Jusqu’à (0<= N )
fin
Fonction conversion2( N :entier ) : chaîne
Début
ch""
Tant que (N div2 ≠0) Faire
r n mod 2 TDO Locaux
chch+convch(r) Objet Type
N N div2 r Entier
Fin Tant Que ch Chaîne
N N div2
r N mod 2
chch+convch(r)
retourner ch
Fin
Fonction formerNB(ch): entier TDO Locaux
Début Objet Type
inv_ch"" i Entier
Pour i de1à long(ch) faire inv_ch Chaîne
inv_chinv_ch+convch(ch[-i])
fin Pour
retourner valeur( inv_ch)
Fin
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
#Méthode 1 : 6
def saisie():
n=int(input(" donner un entier n positif "))
while ( 0>=n):
n=int(input(" ressaisir n "))
return n
def conversion2(n):
ch=""
while (n //2 !=0):
r= n % 2
ch=ch+str(r)
n=n //2
r=n %2
ch=ch+str(r)
return ch
def formerNB(ch):
#former l'inverse de ch
inv_ch=""
for i in range(1,len(ch)+1):
inv_ch=inv_ch+str(ch[-i])
return int( inv_ch)
#pp
print( "la conversion de la base 10 à la base 2")
n= saisie()
ch=conversion2(n)
print(ch)
n_b2=formerNB(ch)
print(n, " dans la base 10 = ",n_b2, "dans la base 2")
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
Méthode 2 : Tableau 7
Algorithme de la décomposition modulaire (programme principal)
Début
Ecrire ( "la conversion de la base 10 à la base 2")
saisie(N)
m,t=conversion2(n)
n_b2=formerNB(m,t)
Ecrire (N, " dans la base 10 = ",n_b2, "dans la base 2")
Fin
TDO Globaux
TDNtypes
Objet Type
Type
N, n_b2,m Entier
Tab = tableau de 100 entiers
T Tab
Les algorithmes des modules
Saisie Procédure
Procédure saisie( @ N : entier )
conversion2, Fonction
début
formerNB Fonction
Répéter
Ecrire (" donner un entier n positif ")
Lire (n)
Jusqu’à (0<= N )
fin
Procédure conversion2( N :entier ; @T :Tab ; @ m : entier)
Début
m-1
Tant que (N div2 ≠0) Faire
mm+1
t[m]= n mod 2
N N div2
Fin Tant Que
N N div2
T[m] N mod 2
mm+1#taille
Fin
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
Fonction formerNB(m :entier ; T : tab): entier 8
TDO Locaux
Début
Objet Type
ch""
i Entier
Pour i de m-1à 0 ( pas=-1) faire
ch Chaîne
ch ch+convch(T[ i ] )
fin Pour
retourner valeur( ch)
Fin
#Méthode 2 : Tableau
def saisie():
n=int(input(" donner un entier n positif "))
while ( 0>=n):
n=int(input(" ressaisir n "))
return n
def conversion2(n):
t = [0]*100
m=-1
while (n //2 !=0):
m=m+1
t[m]= n % 2
n=n //2
m=m+1
t[m]=n %2
m=m+1
return m,t
def formerNB(m,t):
ch=""
for i in range(m-1,-1,-1):
ch=ch+str(t[i])
return int( ch)
#pp
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
print( "la conversion de la base 10 à la base 2") 9
n= saisie()
m,t=conversion2(n)
n_b2=formerNB(m,t)
print(n, " dans la base 10 = ",n_b2, "dans la base 2")
Activité 2 : Conversion d’un entier de la base 10 vers la base 8.
On se propose de saisir un entier N positif.
On se propose de convertir N ( qui est évidemment un entier de la base 10)
vers la base 8 (le système octal).
Il s'agit de faire une suite de
divisions euclidiennes par 8.
Jusqu’à avoir un quotient est égal
à zéro. Nb : le reste( de 0 à 7)
On doit récupérer le reste de la
division euclidienne
Exp : 125(10) = 175(8)
Méthode 1 :
On fait une concaténation de chaque reste obtenu,
exemple Ch="571"
On cherche l’inverse de cette chaîne invers de ch ="175", puis on la
convertie en un entier.
Méthode 2 : Tableau
Chaque reste de la division euclidienne, on le met dans une case
dans un tableau T.
T 5 7 1
indice 0 1 2
On forme une chaîne du dernier élément jusqu’au premier ( de m-1
à la case 0 (pas=-1)Ce qui donne ch ="175",Puis on converti ch
en entier.
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
def saisie(): 10
n=int(input(" donner un entier n positif "))
while ( 0>=n):
n=int(input(" ressaisir n "))
return n
def conversion8(n):
t = [0]*100
m=-1
while (n //8 !=0):
m=m+1
t[m]= n % 8
n=n //8
m=m+1
t[m]=n %8
m=m+1
return m,t
def formerNB(m,t):
ch=""
for i in range(m-1,-1,-1):
ch=ch+str(t[i])
return int( ch)
#pp
print( "la conversion de la base 10 à la base 8")
n= saisie()
m,t=conversion8(n)
n_b8=formerNB(m,t)
print(n, " dans la base 10 = ",n_b8, "dans la base 8")
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
Activité 3 : Conversion d’un entier de la base 10 vers la base 16. 11
On se propose de saisir un entier N positif.
On se propose de convertir N ( qui est évidemment un entier de la base 10)
vers la base 16 (le système Hexadécimal).
Il s'agit de faire une suite de divisions euclidiennes par 16. Jusqu’à
avoir un quotient est égal à zéro. Nb : le reste( de 0 à 7)
On doit récupérer le reste de la division euclidienne
Exemples :
125(10) = 7D(16) avec (13 = D)
430(10) = 1AE(16) avec ( 14 = E , 10 = A)
335(10) = 14F(16) avec ( 15 = F)
Méthode 1 : exemple 430(10) = 1AE(16) avec ( 14 = E , 10 = A)
On fait une concaténation de chaque reste obtenu, tout en tenant
compte des valeurs suivantes
Ch="EA1" avec ( 14 = E , 10 = A)
On cherche l’inverse de cette chaîne inverse de ch ="1AE"
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
Méthode 2 : Tableau 12
Chaque reste de la division euclidienne, on le met dans une case
dans un tableau T.
T 14 10 1
indice 0 1 2
On forme une chaîne du dernier élément jusqu’au premier ( de m-1
à la case 0 (pas=-1) tout en tenant compte des valeurs suivantes :
Ce qui donne ch ="1AE"
NB : On peut utiliser la structure conditionnelle à choix multiple
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
Méthode 2 : Tableau 13
Algorithme de la décomposition modulaire (programme principal)
Début
Ecrire ( "la conversion de la base 10 à la base 16")
saisie(N)
m,t=conversion16(n)
n_b16=formerNB(m,t)
Ecrire (N, " dans la base 10 = ",n_b16, "dans la base 2")
Fin
TDO Globaux
TDNtypes Objet Type
Type N, n_b2,m Entier
Tab = tableau de 100 entiers T Tab
Saisie Procédure
Les algorithmes des modules
Conversion16 Fonction
Procédure saisie( @ N : entier )
formerNB Fonction
début
Répéter
Ecrire (" donner un entier n positif ")
Lire (n)
Jusqu’à (0<= N )
fin
Procédure conversion16( N :entier ; @T :Tab ; @ m : entier)
Début
m-1
Tant que (N div2 ≠0) Faire
mm+1
t[m]= n mod 2
N N div2
Fin Tant Que
N N div2
T[m] N mod 2
mm+1#taille
Fin
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
14
Fonction formerNB(m :entier ; T : tab): chaîne
TDO Locaux
Début
Objet Type
ch""
i Entier
Pour i de m-1à 0 ( pas=-1) faire
ch Chaîne
Selon T[i]
10 : ch ch+"A"
11 : ch ch+"B"
12 : ch ch+"C"
13 : ch ch+"D"
14 : ch ch+"E"
15 : ch ch+"F"
Sinon
ch ch+convch(T[ i ] )
Fin Selon
fin Pour
retourner ch
Fin
def saisie():
n=int(input(" donner un entier n positif "))
while ( 0>=n):
n=int(input(" ressaisir n "))
return n
def conversion16(n):
t = [0]*100
m=-1
while (n //16 !=0):
m=m+1
t[m]= n % 16
n=n //16
m=m+1
t[m]=n %16
m=m+1
Mme Jihene Chiboub Lycée Carthage Byrsa 4Science
return m,t 15
def formerNB(m,t):
ch=""
for i in range(m-1,-1,-1):
if t[i]==10:
ch=ch+'A'
elif t[i]==11:
ch=ch+'B'
elif t[i]==12:
ch=ch+'C'
elif t[i]==13:
ch=ch+'D'
elif t[i]==14:
ch=ch+'E'
elif t[i]==15:
ch=ch+'F'
else :
ch=ch+str(t[i])
return ch
#pp
print( "la conversion de la base 10 à la base 16")
n= saisie()
m,t=conversion16(n)
n_b16=formerNB(m,t)
print(n, " dans la base 10 = ",n_b16, "dans la base 16")