Base 2 à base 4
Leen_05
Messages postés
1
Statut
Membre
-
Leen_05 -
Leen_05 -
Bonjour!
Je dois faire un programme qui permet de convertir des nombres binaires en nombre de base 4 sans passer par la base 10 en python mais je suis bloquée!
Voici mon programme:
Merci pour tout!
Je dois faire un programme qui permet de convertir des nombres binaires en nombre de base 4 sans passer par la base 10 en python mais je suis bloquée!
Voici mon programme:
#programme base 2 à base 4:
from math import*
def b2tob4():
l=int(input("Combien y a t-il de chiffre dans votre nombre binaire? \n"))
binaire=[]
binaire.append(input("Entrez le premier chiffre de votre nombre binaire: "))
for i in range(2,l+1):
binaire.append(input("Entrez le chiffre suivant de votre nombre binaire: "))
print(binaire) # à supprimer à la fin
binaire.reverse()
print(binaire) # à supprimer à la fin
for i in range(0,l):
binaire[i]=binaire[i]*(2**i) #pb: 1*2**1=2 et affiche 11, il affiche 2 fois le chiffre 1!
i=i+1
print(binaire) # à supprimer à la fin
#2^0 et 2^1 donne 4^0; 2^2 et 2^3 donne 4^1 ...
# if 2**i <= 4:
#2**i=4**0
Merci pour tout!
A voir également:
- Voici une base de données présentant la programmation d'un théâtre. elle comporte 4 tables : pieces, seances, categories, tarifs. combien de pièces de danse et de pièces de musique, en tout, ont un tarif réduit strictement inférieur à 15 euros ?
- Telecharger toutes les pieces jointes gmail - Guide
- Code de triche gta 4 - Guide
- Télécharger musique gratuitement sur pc - Télécharger - Conversion & Extraction
- Supprimer les données de navigation - Guide
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
3 réponses
Je ne parle pas Python, mais si tu représentes tes nombres par une suite de bits, la base 2 s'obtient en prenant les bits 1 à 1, et la base 4 en les prenant 2 à 2.
Exemple :
base 2 = 10110001 = 1 0 1 1 0 0 0 1
base 4 = 10 11 00 01 = 2301
Exemple :
base 2 = 10110001 = 1 0 1 1 0 0 0 1
base 4 = 10 11 00 01 = 2301
Oui c'est super simple il suffit de regrouper les bits par deux, pas besoin de passer par la base 10 donc.
En utilisant un petit dictionnaire voici ce que çà donne ( cette méthode ne marche qu'avec les nombres binaires entiers ) :
Universale.
En utilisant un petit dictionnaire voici ce que çà donne ( cette méthode ne marche qu'avec les nombres binaires entiers ) :
def tobase4 ( n, result = '' ) :
if ( len ( n ) % 2 == 1 ) : n = '0' + n
converter = { '00' : '0', '01' : '1', '10' : '2', '11' : 3 }
for x in xrange ( len ( n ) / 2 ) :
result += converter [ n [ x * 2 : x * 2 + 2 ] ]
return result
print tobase4 ( '1001' )
# 21
Universale.