Additionneur binaire Python

Résolu/Fermé
Clemsouuu Messages postés 776 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 24 décembre 2017 - Modifié par Whismeril le 5/10/2015 à 21:30
Clemsouuu Messages postés 776 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 24 décembre 2017 - 5 oct. 2015 à 21:42
Bonjour.

Je cherche à faire un additionneur binaire sous Python et j'ai donc un peu travaillé dessus sauf que j'ai le problème que mon résultat est faux. Je rentre 0001 et 0010 et on me donne 1001. Après de nombreux tests j'ai l'impression que Python ne comprends pas mon input en binaire. Car j'ai teste 0010 et Python me donne 8 en base 10. Comment résoudre mon problème ? Voici mon code :

a = int(input("premier nombre : "))
b = int(input("deuxième nombre : "))
 
retenue = 0
resultat = 0
position = 0
 
while a > 0 or b > 0 or retenue > 0:
    chiffre_a = a % 10
    chiffre_b = b % 10
    a = a // 10
    b = b // 10
    somme = chiffre_a + chiffre_b + retenue
    retenue = somme // 2
    resultat += (somme % 2) * 10**position
    position += 1
 
print ("0b"),resultat



Merci d'avance

2 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
5 oct. 2015 à 21:31
Bonsoir, tu as signalé cette question résolue.
Peux tu partager ta solution, pour un autre internaute à l'avenir?


D'autre part, pour poster du code, pense à la coloration syntaxique.

Merci
1
Clemsouuu Messages postés 776 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 24 décembre 2017 130
5 oct. 2015 à 21:42
J'ai simplement utilisé Pyscripter qui ma donné le résultat binaire en CPL2 donc avec le MSB (bit de point fort) qui définit le signe (1 positif et 0 négatif)
0