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ément : Pour 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 ?