Numérique et sciences informatiques

Du binaire au décimal

(Processing)

Voici un programme qui transforme un nombre binaire en décimal. (Processing)

1
# import des bibliothèques javax pour l'affichage de boites de dialogues
2
from javax.swing import JOptionPane
3
from javax.swing import JFrame
4
#affichage de la boite de dialogue
5
frame = JFrame()
6
a=JOptionPane.showInputDialog(frame,"Entrez un nombre en binaire","Dialog",JOptionPane.PLAIN_MESSAGE)
7
#a est une chaîne de caractères
8
if a:#si a n'est pas vide
9
    print(len(a))#on fait afficher la longueur de la chaîne entrée 
10
    s=0 # on initialise s à 0
11
    n=len(a)# on mémorise la longueur de la chaîne entrée
12
    for i in a:# pour chaque caractère de la chaîne ( des 0 ou 1 )
13
        s=s+eval(i)*2**(n-1)# on cumule les puissances de 2, eval(i) permet de prendre i comme un nombre
14
        n=n-1# on décrémente n de 1
15
    print(s)# on affiche le résultat

On peut vérifier son résultat avec la commande : print(unbinary(a)) (Processing)

le même programme dans EduPython

1
a=input("Entrez un nombre en binaire")
2
if a:#si a n'est pas vide
3
    print(len(a))#on fait afficher la longueur de la chaîne entrée
4
    s=0 # on initialise s à 0
5
    n=len(a)# on mémorise la longueur de la chaîne entrée
6
    for i in a:# pour chaque caractère de la chaîne ( des 0 ou 1 )
7
        s=s+eval(i)*2**(n-1)# on cumule les puissances de 2, eval(i) permet de prendre i comme un nombre
8
        n=n-1# on décrémente n de 1
9
    print(s)# on affiche le résultat
  • Après l'avoir testé et compris, vous devez vous en inspirer pour donner l'écriture en décimal d'un nombre en base 8

ComplémentPour les courageux

Ce programme calcule même si le nombre entré n'est pas en binaire !

Comment peut-on l'améliorer pour que cela ne soit plus possible ?

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Stéphan Van Zuijlen Licence de documentation libre GNURéalisé avec Scenari (nouvelle fenêtre)