# ###################################################### # # Programme 2_vers_10.py # # Ce programme demande un nombre en base 2 (entier ou # à virgule) et le convertit en base 10 # # Auteur : Jean-Christophe MICHEL # # Site Internet : http://python.gecif.net # # ###################################################### chaine=input('Entrez un nombre en base 2 :') print('Vous avez saisie ',chaine) while (not(chaine.count('.')<=1 and chaine.count('0')+chaine.count('1')+chaine.count('.')==len(chaine))): print("ERREUR : vous n'avez pas saisie un nombre en base 2") chaine=input('Entrez un nombre en base 2 (chiffres 0 et 1 avec un point éventuel) :') print('Vous avez saisie ',chaine) if '.' in chaine: # nombre à virgule # détermine le rang du bit de poids forts : rang=chaine.index('.')-1 chaine=chaine.replace('.','') total=0 for i in range(len(chaine)): # calcule le poids de chaque bit avec naturellement des puissances de 2 # négatives pour la partie franctionnaire total=total+int(chaine[i])*2**rang rang=rang-1 else: # nombre entier rang=len(chaine) total=0 for i in range(rang): # additionne le poids de chaque bits à 1 total=total+int(chaine[i])*2**(rang-1-i) print("Voici l'écriture de votre nombre en base 10 :",total)