def bin(n):
res = []
while n != 0:
res.append(str(n%2)) # ajoute dans ma liste le reste
n //= 2 # calcul de la nouvelle valeur de n
res.reverse() # j'inverse le résultat
return "".join(res) # transforme la liste en une chaine de caracteres
print(bin(25))
print(int(bin(25), 2)) # transforme mon binaire en décimal
Je comprend un peu mieux mais je n'ai pas encore appris à faire avec des fonctions comme res.append ; res.reverse...
Pour l'instant je ne vois que la base du python en cours.(while,if,else...)
n4 = input("le nombre en base 10: ")
base2= ''
while n4!= 0:
if n4 % 2 != 0:
n4 = int(n4/2)
base2 =('1')+base2
else:
n4 = n4/2
base2 = ('0')+base2
print(base2)
c'est un truc que j'ai fait il y a pas longtemps pour mon cours de méthodologie de programmation (oui moi je le fait en python puis je traduit vers le francais x) )
je te laisse comprendre sinon ça serait trop facile
J'ai aussi un code qui peut transformer une base 10 vers n'importe quel autre base y compris la base 16
Sinon oui divmod mais je pense qu'en débutant la progra il faut faire travailler ses neurone et pas utiliser les fonctions existante
Pour trouver l'écriture binaire d'un nombre, il faut remarquer deux choses :
Le bit de poids le plus faible (le plus à droite dans l'écriture classique) indique la parité du nombre. Par exemple, le nombre <math>\({100101}_2\)</math> est impair car son bit de poids le plus faible est 1.
Pour supprimer le bit de poids le plus faible d'un nombre, il suffit de le diviser par deux (au sens division entière).
A partir de là, même plus besoin de réfléchir :
def dec2bin(n) :
""" Returns the list of the binary bits of n """
b = []
m=n
while m != 0 :
b.append(m%2) #append method add the argument at the end of the list
m /= 2
b.reverse() #reverse method reverse the order of the list
return b #b is now in the correct bits order for reading
J'ai aussi un code qui peut transformer une base 10 vers n'importe quel autre base y compris la base 16
j' aimerai bien le voir ...
Citation : Creatortag21
Sinon oui divmod mais je pense qu'en débutant la progra il faut faire travailler ses neurone et pas utiliser les fonctions existante
alors sans divmod() ça donne avec en prime un élargissement des bases:
bstring = '0123456789abcdefghijklmnopqrstuvwxyz'
base = 2 #choisir une 0<base<37
a = 43 # entrer un nombre
b = ''
while a:
#a,c = divmod(a,base)
b = bstring[a % base]+b
a //= base
print(b)
ça ne change rien à l'algo, ce n'est pas comme si j'avais utilisé bin().
d' ailleurs, c'est exactement ce que fait ton code (ci-dessous, je me suis permis des petites corrections) les tests inutiles en moins.
n4 = int(input("le nombre en base 10: "))
base2= ''
while n4:
if n4 % 2:
n4 = n4//2
base2 =('1')+base2
else:
n4 = n4/2
base2 = ('0')+base2
print(base2)
Mdr pourquoi tu veux mon code alors que tu viens de le faire ;D
autant pour moi, j'avais mal lu ...
j'avais compris pour convertir n'importe quelle chaîne en base 10.
Python c'est bon, mangez-en.
Conversion Décimal vers binaire
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.