Convertisseur en base universelle

Robin -  
 Utilisateur anonyme -
Bonjour, j'ai un problème, je dois faire un convertisseur de universelle, sauf que c'est ma première année de python et je n'es pas de leçon, je suis perdu, quel un pourrait t'il m'aider ?
 n= int(input("Veuillez saisir un nombre:"))
z= int(input("Choisir une base :"))
y= int(input("Choisir une autre base:"))
b=0
a=0
while n!=0:
    reste= n%z
    p=y**a
    b=b+reste*p
    a=a+1
    n=n//2
print(b)
A voir également:

3 réponses

Utilisateur anonyme
 
Bonsoir

A là main, comment ferais tu pour calculer la conversion de 123 en base 11 vers la base 7 ?
0
Robin
 
On fait une division euclidienne jusqu'à atteindre 0, puis on lie les reste à l'envers, donc 266
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Robin
 
bonjour,
Détaille bien les étapes, de façon à pourvoir ensuite programmer cela.
0
Robin > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Ca c'est simple, mais le plus compliqué, c'est de rajouter des lettres dans le programme, car il doit pouvoir convertir de la base 2 à 36.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Robin
 
quelle solution pourrais-tu imaginer pour ces lettres?
0
Utilisateur anonyme > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour

tu dis
On fait une division euclidienne jusqu'à atteindre 0, puis on lie les reste à l'envers, donc 266

Alors je fais
123 \ 7 = 17 reste 4
17\7 = 2 reste 3
2\7 = 0 reste 2
Donc selon ta description 234....

Pourtant tu donnes 266 qui est la bonne réponse.

Donc avant de s'occuper des lettres, on va essayer de décrire un algorithme qui donne bien 266 pour cette conversion.
Ou tu peux poster le programme directement, puis que tu dis que c'est simple.

Et sur cette base, on envisagera les lettres, parce que vois tu, il y a de nombreuses façons de faire et la bonne sera celle que tu trouves à partir de ce que tu connais et pas celle que yg_be (salut au passage) ou moi pourrions te souffler mais que tes connaissances actuelles n'auraient peut-être par permis de trouver
0
Robin
 
Je sais qu'il faut d'abord convertir par en base 10, puis de la base 10 vers la base finale

n= int(input("Veuillez saisir un nombre:"))
b1= int(input("Choisir une base de départ"))
b2= int(input("Choisir uen base d'arrivé:"))
b=0
a=0
while n!=0:
    reste=n%10
    p=b1**a
    b=b+reste*p
    a=a+1
    n=n//10
print(b)
0
Utilisateur anonyme
 
sais qu'il faut d'abord convertir par en base 10, puis de la base 10 vers la base finale

Oui, mais ce n'est pas ce que fait ton programme.
0
Robin > Utilisateur anonyme
 
Ha
0
Utilisateur anonyme > Robin
 
Je te propose donc que tu écrives ton programme avec ces 2 étapes
0
Robin > Utilisateur anonyme
 
j'ai ressaye et je tombe sur un bon résultat avec mon programme. J'ai tapé 123 en nombre d'entrée, 7 en base de départ et 10 en arrivé, ca ma donné 66, et sur un site convertisseur en ligne, j'ai eu le même résultat.
0
Utilisateur anonyme > Robin
 
Et si tu lui demandes 123 en base 7 à convertir en base 6?
0
Utilisateur anonyme
 
Très bien

Pense à marquer le sujet résolu.

A tout hasard, as tu déjà vu les dictionnary?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
un tableau de 36 caractères suffit amplement.
0
Utilisateur anonyme > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui bien sûr
0