Fonction Python decimale base(n, base)
Résolu
Bonjour à tous je ne comprends pas cette exercice,
Pourriez-vous m'aider? Merci par avance :
Ecrire une fonction Python décimale base(n, base) qui prend en arguments un nombre entier positif en base décimale n et la valeur de la base dans laquelle convertir la valeur n et qui renvoie son écriture dans la nouvelle base.
Pourriez-vous m'aider? Merci par avance :
Ecrire une fonction Python décimale base(n, base) qui prend en arguments un nombre entier positif en base décimale n et la valeur de la base dans laquelle convertir la valeur n et qui renvoie son écriture dans la nouvelle base.
A voir également:
- Fonction Python decimale base(n, base)
- Base de registre - Guide
- Fonction si et - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Formules excel de base - Guide
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Bonsoir excusez-moi de vous déranger à nouveau, si tardivement. Mais après avoir lu pendant plusieurs heures différents cours sur internet, et effectuer plusieurs petits exercices. J'ai réussi à faire un programme qui est le suivant :
Exécution du script
C'était afin de savoir si mon programme était bon par rapport à la question demandée . (Et si cela est juste, je voulais vous demander s'il existe une autre manière peut-être plus simple de faire ?)
Bonne soirée,
Merci
#Donner un nombre décimale
nbrD= int (input())
print ("Entrer le nombre décimale =" , (nbrD))
#Donner la base binaire
print ("La base binaire est =" , bin(nbrD)[2:])
#Donner la base hexadécimale
print ("La base hexadecimale est =" , hex(nbrD)[2:])
Exécution du script
Le nombre décimale = 80512
La base binaire est = 10011101010000000
La base hexadecimale est = 13a80
C'était afin de savoir si mon programme était bon par rapport à la question demandée . (Et si cela est juste, je voulais vous demander s'il existe une autre manière peut-être plus simple de faire ?)
Bonne soirée,
Merci
Salut j'avais fais ça mais mon prof m'a dit que j'utilise juste les fonctions de python et il voulait que je crée moi même la chose qui calcule voilà j'espère que cela peut t'aider
Bonjour,
Avant d'essayer d'écrire le programme en python, demande-toi comment tu ferais mathématiquement pour faire ta conversion.
Ecrire un nombre x en base b revient à l'écrire sous la forme : x = sum(ai * b^i) où ai est le i-ème chiffre de la représentation de x en base b et où i va de 0 a une valeur suffisamment grande.
Exemple : prenons x = 13 et b = 2 : alors :
x = 1 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 1 * 2³ + 1 * 2² + 0 * 2^1 + 1 * 2^0
... ce qui explique pourquoi en binaire, 13 s'écrit 1101.
Alors comment retrouver cette décomposition ? Comme expliqué sur cette page Wikipedia on peut utiliser la méthode des divisions successives. Il faut d'abord trouver la plus grande puissance de b=2 inférieure à x. Ici c'est 8 = 2³.
Quelques indices pour ton programme en python :
Bonne chance
Avant d'essayer d'écrire le programme en python, demande-toi comment tu ferais mathématiquement pour faire ta conversion.
Ecrire un nombre x en base b revient à l'écrire sous la forme : x = sum(ai * b^i) où ai est le i-ème chiffre de la représentation de x en base b et où i va de 0 a une valeur suffisamment grande.
Exemple : prenons x = 13 et b = 2 : alors :
x = 1 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 1 * 2³ + 1 * 2² + 0 * 2^1 + 1 * 2^0
... ce qui explique pourquoi en binaire, 13 s'écrit 1101.
Alors comment retrouver cette décomposition ? Comme expliqué sur cette page Wikipedia on peut utiliser la méthode des divisions successives. Il faut d'abord trouver la plus grande puissance de b=2 inférieure à x. Ici c'est 8 = 2³.
- On calcule la division euclidienne de 13 par 8 et on en déduit que 13 = 1*2³ + 5. On a donc le premier chiffre de la décomposition binaire (1) et le reste (5) va nous permettre de trouver les suivants.
- Pour trouver le chiffre suivant, on applique le même raisonnement avec la puissance de 2 du dessous soit 2² = 4. On fait la division euclidienne et on trouve 5 = 1 * 2² + 1. On a donc le second chiffre de la décomposition binaire (1) et le reste (1) nous permet de trouver les suivants.
- On continue avec la puissance de 2 du dessous soit 2^1 = 2 et le nouveau reste. 1 = 0 * 2^2 + 1. On obtient donc le troisième chiffre de la décomposition binaire (0) et le reste (1) nous permet de trouver les suivants.
- On continue avec la puissance de 2 du dessous soit 2^0 = 1 et qui sera la dernière. 1 = 1 * 2^0 + 0, et on obtient donc le quatrième chiffre de la décomposition binaire. Comme le reste est nul, on a fini la décomposition. Si la puissance courante n'était pas 2^0, les chiffres restants seraient tous des 0.
Quelques indices pour ton programme en python :
- On calcule le quotient avec
//
: par exemple13 // 8 == 1
car13 = 1 * 8 + 5
. - On calcule le quotient avec
%
: par exemple13 % 8 == 5
car13 = 1 * 8 + 5
.
Bonne chance
Bonsoir
je pense que tu t'es embêtée pour rien.
La demande initiale date d'un mois et demi.
Le lendemain, jean montre une solution que ne répond pas à l'énoncé, ce qu'yg-ge lui signale.
Et hier, il se réveil (changer de nom) pour dire que son prof n'est pas content mais qu'il "offre" son code au monde car les bases 2 et 16 sont les plus utilisées.
Comme si le monde avait besoin de lui pour ça....
je pense que tu t'es embêtée pour rien.
La demande initiale date d'un mois et demi.
Le lendemain, jean montre une solution que ne répond pas à l'énoncé, ce qu'yg-ge lui signale.
Et hier, il se réveil (changer de nom) pour dire que son prof n'est pas content mais qu'il "offre" son code au monde car les bases 2 et 16 sont les plus utilisées.
Comme si le monde avait besoin de lui pour ça....
Pouvez-vous alors m'aiguiller ? Car je ne sais pas où commencer. Je n'ai pas eu de leçon sur cette partie là, je ne connais donc pas le python et aie donc besoins d'aiguillements si cela est possible.
je pense qu'il vaut mieux commencer par apprendre, puis faire des exercices plus simples.