Vous allez construir un programme pour convertir un nombre donné en base 10 en écriture dans la base 16.
Pour cela, vous introduirez à la main deux dictionnaires.
Le premier permettant de passer des nombres 0, 1, .... , 15 aux "nombres" 0, 1, ... , A, B, ..., F
Le second permettant de faire le contraire.
Vous aurez besoin de la méthode reverse(), celle-ci permet de renverser une liste.
Puis vous construirez votre programme.
conv_10_16={0:'0',1:'1',2:'2',3:'3',4:'4',5:'5',6:'6',7:'7',8:'8',9:'9',10:'A',11:'B',12:'C',13:'D',14:'E',15:'F'}
conv_16_10={'0':'0','1':'1','2':'2','3':'3','4':'4','5':'5','6':'6','7':'7','8':'8','9':'9','A':'10','B':'11','C':'12','D':'13','E':'14','F':'15'}
nombre_base_10 ="965"
NB_10=int(nombre_base_10) # Conversion de la chaine de caractères en entier
liste=[] # Liste qui contiendra les restes des divisions par 16
while NB_10!=0: # Tourne tant que le reste n'est pas nul.
liste.append(NB_10%16) # Donne le reste de la division par 16
NB_10=NB_10//16 # Donne le quotient qu'il va falloir à nouveau diviser.
liste.reverse() # Renverse la liste
liste=[conv_10_16[i] for i in liste] # Converti la liste en utilisant la méthode par compréhension
NB_16="" # Initialise la chaine de caractère à vide.
for i in range(len(liste)): # Passe tous les éléments de la liste 1 par 1
NB_16=NB_16+str(liste[i]) # Concatenne les éléments de la liste
print(NB_16) # Affiche le nombre en base 16.
Enfin vous le convertirez en fonction.
###section des fonctions
def converti_10_16(nombre_base_10):
"""Cette fonction converti un nombre donné en base 10 en sa traduction en base 16"""
NB_10=int(nombre_base_10) # Conversion de la chaine de caractères en entier
liste=[] # Liste qui contiendra les restes des divisions par 16
while NB_10!=0: # Tourne tant que le reste n'est pas nul.
liste.append(NB_10%16) # Donne le reste de la division par 16
NB_10=NB_10//16 # Donne le quotient qu'il va falloir à nouveau diviser.
liste.reverse() # Renverse la liste
liste=[conv_10_16[i] for i in liste] # Converti la liste en utilisant la méthode par compréhension
NB_16="" # Initialise la chaine de caractère à vide.
for i in range(len(liste)): # Passe tous les éléments de la liste 1 par 1
NB_16=NB_16+str(liste[i]) # Concatenne les éléments de la liste
print(NB_16) # Affiche le nombre en base 16.
### Section main
conv_10_16={0:'0',1:'1',2:'2',3:'3',4:'4',5:'5',6:'6',7:'7',8:'8',9:'9',10:'A',11:'B',12:'C',13:'D',14:'E',15:'F'}
conv_16_10={'0':'0','1':'1','2':'2','3':'3','4':'4','5':'5','6':'6','7':'7','8':'8','9':'9','A':'10','B':'11','C':'12','D':'13','E':'14','F':'15'}
nombre_base_10 ="965"
converti_10_16(nombre_base_10)
Vous crérez une fonction convertissant un nombre donné en base 16 en écriture en base 10.
def converti_16_10(nombre_base_16):
liste=[conv_16_10[i] for i in nombre_base_16]
liste=[int(i) for i in liste]
liste.reverse()
NB_10=0
for i in range(len(liste)):
NB_10=NB_10+liste[i]*16**i
print(NB_10)
conv_16_10={'0':'0','1':'1','2':'2','3':'3','4':'4','5':'5','6':'6','7':'7','8':'8','9':'9','A':'10','B':'11','C':'12','D':'13','E':'14','F':'15'}
converti_16_10('3C5')
Vous crérez un programme principal qui demandera à l'utilisateur quel type de convertion il souhaite faire.
Puis vous effecturez la conversion demandée.
###section des fonctions
def converti_10_16(nombre_base_10):
"""Cette fonction converti un nombre donné en base 10 en sa traduction en base 16"""
NB_10=int(nombre_base_10) # Conversion de la chaine de caractères en entier
liste=[] # Liste qui contiendra les restes des divisions par 16
while NB_10!=0: # Tourne tant que le reste n'est pas nul.
liste.append(NB_10%16) # Donne le reste de la division par 16
NB_10=NB_10//16 # Donne le quotient qu'il va falloir à nouveau diviser.
liste.reverse() # Renverse la liste
liste=[conv_10_16[i] for i in liste] # Converti la liste en utilisant la méthode par compréhension
NB_16="" # Initialise la chaine de caractère à vide.
for i in range(len(liste)): # Passe tous les éléments de la liste 1 par 1
NB_16=NB_16+str(liste[i]) # Concatenne les éléments de la liste
print(NB_16) # Affiche le nombre en base 16.
def converti_16_10(nombre_base_16):
liste=[conv_16_10[i] for i in nombre_base_16]
liste=[int(i) for i in liste]
liste.reverse()
NB_10=0
for i in range(len(liste)):
NB_10=NB_10+liste[i]*16**i
print(NB_10)
### Section main
conv_10_16={0:'0',1:'1',2:'2',3:'3',4:'4',5:'5',6:'6',7:'7',8:'8',9:'9',10:'A',11:'B',12:'C',13:'D',14:'E',15:'F'}
conv_16_10={'0':'0','1':'1','2':'2','3':'3','4':'4','5':'5','6':'6','7':'7','8':'8','9':'9','A':'10','B':'11','C':'12','D':'13','E':'14','F':'15'}
question=input('Conversion 10 -->16, tapez 16. Conversion 16-->10, papez 10 : ')
if question=='16':
NB_10=input('Entrez un nombre en base 10 : ')
converti_10_16(NB_10)
elif question=='10':
NB_16=input('Entrez un nombre en base 16 : ')
converti_16_10(NB_16)
else:
print("Je n'ai pas compris votre question")
Vous avez vu, en seconde la façon dont sont codées les couleurs en décimal(RGB).
Le triplet (122,200,96) correspond à la couleur obtenue avec une intensité de Rouge=122, de vert (green)=200 et de bleu=96.
Les valeurs sont toutes comprises entre 0 et 255.
Nous pouvons également coder les couleurs en hexadécimal.
A l'aide de votre programme, donnez le code hexadécimal correspondant au code décimal(RGB) (122,200,96)
Allez vérifier sur le lien suivant:
http://www.proftnj.com/RGB3.htm