Convertir un nombre en binaire sur un quartet
Résolu
computerone
Messages postés
7
Statut
Membre
-
computerone Messages postés 7 Statut Membre -
computerone Messages postés 7 Statut Membre -
bonjour
en isn j'ai un exercice dans le quelle je dois prendre en nombre le séparé dans un liste et le convertir en binaire sur un quartet par exemple pour le nombre 3289471 je dois obtenir:
0011 0010 1000 1001 0100 0111 0001
j'ai donc essayer de crée un programme mais il ne fonctionne pas est je ne sais pas comment faire
merci d'avance pour vos reponces
en isn j'ai un exercice dans le quelle je dois prendre en nombre le séparé dans un liste et le convertir en binaire sur un quartet par exemple pour le nombre 3289471 je dois obtenir:
0011 0010 1000 1001 0100 0111 0001
j'ai donc essayer de crée un programme mais il ne fonctionne pas est je ne sais pas comment faire
listenb= [int(c) for c in str(liste1)]# sépare le nombre en plusieur partie
liste2=[]
liste3=[]
for i in listenb :
while i!= 0:
b=i%2
i=i//2
liste2.append(b)
liste2.reverse()
liste3
print(liste2)
merci d'avance pour vos reponces
1 réponse
-
Tu n'es pas très loin.
code = str(32894710) bar = [] for n in code[:-1]: base = [0] * 4 n = int(n) i = 3 while n: n, r = divmod(n, 2) base[i] = r i -= 1 bar.extend(base) bar.append(int(code[-1])) print(bar)
Un façon encore plus courte, mais beaucoup moins lisible.
code = str(32894710) bar = [] for n in code[:-1]: bar.extend(map(int, bin(int(n))[2:].zfill(4))) bar.append(int(code[-1])) print(bar)-
merci de ta réponse mais il y a un problème avec ces programme c'est que le nombre sera sous la forme d'une liste et décomposer comme se ci
[3,2,8,9,4,7,1]
et donc cela ne marche plus avec le programme et je ne vois pas comment le faire marché avec une liste merci d'avance pour ta réponse.- Une liste ou chaine, ça revient au même, et on même pas besoin de convertir en entier du coup.
code = [3,2,8,9,4,7,1] bar = [] for n in code: base = [0] * 4 i = 3 while n: n, r = divmod(n, 2) base[i] = r i -= 1 bar.extend(base) print(bar) # Représentation print(*(''.join(map(str, bar[i:i+4])) for i in range(0, len(bar), 4)))
-