begin process at 2010 07 29 16:02:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Math & Algorithmes

 > CONVERTISSEUR DECIMAL-BINAIRE-HEXADECIMAL (INTERFACE TKINTER)

CONVERTISSEUR DECIMAL-BINAIRE-HEXADECIMAL (INTERFACE TKINTER)


 Description

Cliquez pour voir la capture en taille normale
Ce programme permet comme son nom l'indique de convertir des nombres (entiers) entre ces 3 bases. Toujours utilise pour vérifier les calculs faits "à la main" pour réviser les cours ^^. Petit programme sans prétention fait en 3/4 d'heure.

Source

  • ##############################
  • # Convertisseur Multi-bases #
  • # par Drvolodimtank #
  • ##############################
  • #### Importation des modules ####
  • from Tkinter import *
  • #################################
  • #### Fonctions de conversion ####
  • #################################
  • listehexa=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]
  • listebinaire=["0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"]
  • def binairedecimal(string):
  • x=len(string)-1
  • n=0
  • res=0
  • while x!=-1:
  • if string[x]=="1":
  • res=res+2**n
  • n=n+1
  • x=x-1
  • return res
  • def decimalbinaire(string):
  • quotient=int(string)
  • liste=[]
  • res=""
  • while quotient!=1:
  • liste=liste+[quotient%2]
  • quotient=quotient/2
  • liste=liste+[1]
  • while liste!=[]:
  • res=res+str(liste[-1])
  • liste=liste[:-1]
  • return res
  • def binairehexa(string):
  • liste=[]
  • res=""
  • while len(string)>4:
  • liste=liste+[string[-4:]]
  • string=string[:-4]
  • liste=liste+[string]
  • while len(liste[-1])!=4:
  • liste[-1]="0"+liste[-1]
  • for x in range(len(liste)):
  • i=listebinaire.index(liste[x])
  • liste[x]=listehexa[i]
  • while liste!=[]:
  • res=res+liste[-1]
  • liste=liste[:-1]
  • return res
  • def hexabinaire(string):
  • res=""
  • for x in range(len(string)):
  • i=listehexa.index(string[x])
  • res=res+listebinaire[i]
  • return res
  • def decimalhexa(string):
  • return binairehexa(decimalbinaire(string))
  • def hexadecimal(string):
  • return binairedecimal(hexabinaire(string))
  • #############################
  • #### Interface graphique ####
  • #############################
  • def convertir():
  • saisie=Esaisie.get()
  • x,y=basedepart.get(),basearrivee.get()
  • couple=(x,y)
  • if couple==(1,2):
  • res=decimalbinaire(saisie)
  • elif couple==(1,3):
  • res=decimalhexa(saisie)
  • elif couple==(2,1):
  • res=binairedecimal(saisie)
  • elif couple==(2,3):
  • res=binairehexa(saisie)
  • elif couple==(3,1):
  • res=hexadecimal(saisie)
  • elif couple==(3,2):
  • res=hexabinaire(saisie)
  • else :
  • res="Euh..... B00lay ??"
  • fen2=Toplevel()
  • Label(fen2,text="Resultat").pack()
  • Label(fen2,text=res).pack()
  • fen2.mainloop()
  • fen=Tk()
  • fen.title("Convertisseur Multi-Bases")
  • Label(fen,text="Saisissez la valeur\na convertir").pack(side=TOP)
  • Esaisie=Entry(fen)
  • Esaisie.pack(side=TOP)
  • Fgauche=Frame(fen)
  • Fgauche.pack(side=LEFT)
  • Label(Fgauche,text="Base de depart").pack()
  • basedepart=IntVar()
  • Radiobutton(Fgauche,text="Decimal",variable=basedepart,value=1,indicatoron=0,width=15).pack()
  • Radiobutton(Fgauche,text="Binaire",variable=basedepart,value=2,indicatoron=0,width=15).pack()
  • Radiobutton(Fgauche,text="Hexadecimal",variable=basedepart,value=3,indicatoron=0,width=15).pack()
  • Fdroite=Frame(fen)
  • Fdroite.pack(side=RIGHT)
  • Label(Fdroite,text="Base d'arrivee").pack()
  • basearrivee=IntVar()
  • Radiobutton(Fdroite,text="Decimal",variable=basearrivee,value=1,indicatoron=0,width=15).pack()
  • Radiobutton(Fdroite,text="Binaire",variable=basearrivee,value=2,indicatoron=0,width=15).pack()
  • Radiobutton(Fdroite,text="Hexadecimal",variable=basearrivee,value=3,indicatoron=0,width=15).pack()
  • Bconvertir=Button(fen,text="Convertir",command=convertir)
  • Bconvertir.pack(side=BOTTOM)
  • fen.mainloop()
##############################
# Convertisseur Multi-bases  #
# par Drvolodimtank          #
##############################

#### Importation des modules ####
from Tkinter import *



#################################
#### Fonctions de conversion ####
#################################
listehexa=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]
listebinaire=["0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"]


def binairedecimal(string):
    x=len(string)-1
    n=0
    res=0
    while x!=-1:
        if string[x]=="1":
            res=res+2**n
        n=n+1
        x=x-1
    return res

def decimalbinaire(string):
    quotient=int(string)
    liste=[]
    res=""
    while quotient!=1:
        liste=liste+[quotient%2]
        quotient=quotient/2
    liste=liste+[1]
    while liste!=[]:
        res=res+str(liste[-1])
        liste=liste[:-1]
    return res

def binairehexa(string):
    liste=[]
    res=""
    while len(string)>4:
        liste=liste+[string[-4:]]
        string=string[:-4]
    liste=liste+[string]
    while len(liste[-1])!=4:
        liste[-1]="0"+liste[-1]
    for x in range(len(liste)):
        i=listebinaire.index(liste[x])
        liste[x]=listehexa[i]
    while liste!=[]:
        res=res+liste[-1]
        liste=liste[:-1]
    return res

def hexabinaire(string):
    res=""
    for x in range(len(string)):
        i=listehexa.index(string[x])
        res=res+listebinaire[i]
    return res

def decimalhexa(string):
    return binairehexa(decimalbinaire(string))

def hexadecimal(string):
    return binairedecimal(hexabinaire(string))

#############################
#### Interface graphique ####
#############################

def convertir():
    saisie=Esaisie.get()
    x,y=basedepart.get(),basearrivee.get()
    couple=(x,y)
    if couple==(1,2):
        res=decimalbinaire(saisie)
    elif couple==(1,3):
        res=decimalhexa(saisie)
    elif couple==(2,1):
        res=binairedecimal(saisie)
    elif couple==(2,3):
        res=binairehexa(saisie)
    elif couple==(3,1):
        res=hexadecimal(saisie)
    elif couple==(3,2):
        res=hexabinaire(saisie)
    else :
        res="Euh..... B00lay ??"
    fen2=Toplevel()
    Label(fen2,text="Resultat").pack()
    Label(fen2,text=res).pack()
    fen2.mainloop()


fen=Tk()
fen.title("Convertisseur Multi-Bases")
Label(fen,text="Saisissez la valeur\na convertir").pack(side=TOP)
Esaisie=Entry(fen)
Esaisie.pack(side=TOP)

Fgauche=Frame(fen)
Fgauche.pack(side=LEFT)
Label(Fgauche,text="Base de depart").pack()
basedepart=IntVar()
Radiobutton(Fgauche,text="Decimal",variable=basedepart,value=1,indicatoron=0,width=15).pack()
Radiobutton(Fgauche,text="Binaire",variable=basedepart,value=2,indicatoron=0,width=15).pack()
Radiobutton(Fgauche,text="Hexadecimal",variable=basedepart,value=3,indicatoron=0,width=15).pack()


Fdroite=Frame(fen)
Fdroite.pack(side=RIGHT)
Label(Fdroite,text="Base d'arrivee").pack()
basearrivee=IntVar()
Radiobutton(Fdroite,text="Decimal",variable=basearrivee,value=1,indicatoron=0,width=15).pack()
Radiobutton(Fdroite,text="Binaire",variable=basearrivee,value=2,indicatoron=0,width=15).pack()
Radiobutton(Fdroite,text="Hexadecimal",variable=basearrivee,value=3,indicatoron=0,width=15).pack()

Bconvertir=Button(fen,text="Convertir",command=convertir)
Bconvertir.pack(side=BOTTOM)

fen.mainloop()
            


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

CALCUL LIST DE NOMBRES PREMIERS par White541
TROUVER TOUT LES QUADRILATÉRES POSSIBLES AVEC N POINTS ALEAT... par Buenol
Source avec Zip GÉNÉRATION D'UN LABYRINTHE AVEC RECHERCHE DU CHEMIN LE PLUS ... par mehdicherti
Source avec Zip Source avec une capture DIVISIONS AVEC PRÉCISION RÉGLABLE par Clempython
Source avec Zip Source avec une capture LE CALCULATOR DE RAYGOLD VERSION 3.1 par raygold

 Sources en rapport avec celle ci

CONVERTISSEUR DE TEMPÉRATURE par skizo00o
CHANGEMENT DE CASSE par linkid
COVERTISSEUR FRANC EUROS par djisse95
CONVERTISSEUR EUROS/FRANCS/DOLLARS/LIVRES par lucky84
CHANGEMENT DE BASE (BASE DÉCIMAL VERS EXADECIMAL) par Marvin

Commentaires et avis

Commentaire de killer_sam le 14/06/2007 18:50:59

Bonjour,

Pas mal comme petite application. Si je peux me permettre, je propose un bouton supplémentaire pour quitter.

CODE :

Radiobutton(Fdroite,text="Decimal",variable=basearrivee,value=1,indicatoron=0,width=15).pack()
Radiobutton(Fdroite,text="Binaire",variable=basearrivee,value=2,indicatoron=0,width=15).pack()
Radiobutton(Fdroite,text="Hexadecimal",variable=basearrivee,value=3,indicatoron=0,width=15).pack()

Bconvertir=Button(fen,text="Convertir",command=convertir)
Bconvertir.pack(side=BOTTOM)

Bexit=Button(fen,text='EXIT',fg ='red',command=fen.quit)  # ligne ajoutée
Bexit.pack(side=BOTTOM)                                   # ligne ajoutée

fen.mainloop()

Le bouton se place juste au dessus de "Convertir" et la police est en rouge (fg='red').
Tant que tu es sous IDLE il ne faut pas tuer à chaque fois le shell.

killer_sam

Commentaire de drvolodimtank le 15/06/2007 09:33:10

Le bouton quitter n'a pas été ajouté volontairement car lorsque l'application est lancée par doublie clique sur le fichier .py (sous windows) un clique sur la croix de fermeture quitte tout normalement.
Mais effectivement on peut rajouter simplement un bouton ;).

Commentaire de Epsilon012 le 12/07/2007 18:38:12

Quand je lui demande de convertir 0 il bug et utilise 90% du CPU :p
J'avoue c'est con de lui demandé ca mais bon je le teste ^^ :)

Commentaire de drvolodimtank le 13/07/2007 09:56:31

Effectivement Epsilon012 je n'ai pas testé rigoureusement mon programme. Par contre 90% de CPU c'est un petit CPU que tu as ^^ il ne me prend que 5 10 % quand il bug !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

utilisation de librairie binaire(dll sous windows et sous linux) [ par kollibar ] comment je peut faire pour créer une dll (en C ou C++ ) et utiliser ses fonctions  en python. je sais qu'il y a des contraintes sur l'é Comment creer un convertisseur de fichier? [ par djisse95 ] Bonjour a tous! Je voudrais juste savoir comment faire, quelle est la demarche a faire pour changer d'extension un fichier avec python.En effet  je vo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales