from Tkinter import * def nombre16(g , f): if g >9 : lettres = ["A","B","C","D","E","F"] nb=10 boucle = g-10 f.append(lettres[boucle]) else: f.append(g) def base10(a,c): print c e = 1 n = 1 f=[] g =0 h=0 i="" while e <= a/c : e = e*c n = n*10 r = a%e #reste de la division g = ((a-r)/e) #nb entier de fois que peut aller le nb e nombre16(g , f) d=a-(g*e) #nb restant en base dix à convertir en base X while e > 1 : n = n/10 e = e/c r = d%e # reste de la division g = ((d-r)/e) #nb entier de fois que peut aller le nb e nombre16(g , f) d=d-(g*e) #nb restant en base dix à convertir en base X while h < len(f) : i = i+str(f[h]) h = h+1 tex7.configure(text = i) def autresbases(a,b,c): d = 0 nb10 = 0 #résultat du nombre en base 10 n = 1 a = str(a) f=1 h=0 ch = [] while f < len(a): #valeur du rang étudié(fonction carré) n = n * b f = f+1 while h < len(a): ch.append(str(a)[h]) h = h+1 print ch e = 0 while d < len(ch): #valeur des lettres if b == 16: g = 0 lettres = ["A","B","C","D","E","F"] nb = [10,11,12,13,14,15] while g < len(lettres): if lettres[g] == ch[d]: e = nb[g] g = g+1 if e == 0 : e = eval(ch[d]) else: e = eval(ch[d]) nb10 = nb10+(e * n) # valeur du nombre base 10 e = 0 n = n/b d = d+1 base10(nb10 , c) def extraire(event): a = entrée1.get() b = eval(entrée2.get()) c = eval(entrée3.get()) autresbases(a,b,c) #programme principal fen = Tk() tex1 = Label(fen, text = "Logiciel de transcription de nombres d'une base numérique à une autre.") tex2 = Label(fen, text = "Veuillez entrer une valeur et indiquez sa base numérique puis la base numérique désirée ( entrée pour valider )") tex3 = Label(fen, text = "valeur :") entrée1 = Entry(fen) entrée1.bind("", extraire) tex4 = Label(fen, text = "base d'origine :") entrée2 = StringVar() r1=Radiobutton(fen, text = "2", variable=entrée2, value = "2") r2=Radiobutton(fen, text = "8", variable=entrée2, value = "8") r3=Radiobutton(fen, text = "10", variable=entrée2, value = "10") r4=Radiobutton(fen, text = "16", variable=entrée2, value = "16") tex5 = Label(fen, text = "base désirée") entrée3 = StringVar() r5=Radiobutton(fen, text = "2", variable = entrée3, value = "2") r6=Radiobutton(fen, text = "8", variable=entrée3, value = "8") r7=Radiobutton(fen, text = "10", variable=entrée3, value = "10") r8=Radiobutton(fen, text = "16", variable=entrée3, value = "16") tex6 = Label(fen ,text = "Valeur dans la nouvelle base :" ) tex7 = Label(fen) boutonquit = Button(fen, text = "Quitter", command = fen.quit) tex1.grid(row=1, column=1) tex2.grid(row=2, column=1) tex3.grid(row=3,column=1) entrée1.grid(row=3, column = 2, columnspan = 4) tex4.grid(row=4,column=1) r1.grid(row = 4, column = 2) r2.grid(row = 4, column = 3) r3.grid(row = 4, column = 4) r4.grid(row = 4, column = 5) tex5.grid(row=5,column=1) r5.grid(row = 5, column = 2) r6.grid(row = 5, column = 3) r7.grid(row = 5, column = 4) r8.grid(row = 5, column = 5) tex6.grid(row = 6, column = 1) tex7.grid(row=6, column=2, columnspan = 4) boutonquit.grid(row = 7, column = 5) fen.mainloop() fen.destroy()