0% found this document useful (0 votes)
9 views2 pages

Conv Py

This document contains code for a program that converts numbers between different number bases. It defines functions to verify if a number is valid in a given base, convert a number from base 10 to another base, convert a number from another base to base 10, and functions to convert numbers and clear fields when buttons are clicked.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views2 pages

Conv Py

This document contains code for a program that converts numbers between different number bases. It defines functions to verify if a number is valid in a given base, convert a number from base 10 to another base, convert a number from another base to base 10, and functions to convert numbers and clear fields when buttons are clicked.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

27/04/2024 17:59 conv.

py

1 from PyQt5.uic import *


2 from PyQt5.QtWidgets import *
3 def verifbase(x,a):
4 re=True
5 if x=="":
6 return False
7 m=str(int(a)-1)
8 if int(a)<=10:
9
10 for i in range(len(x)):
11 if not "0"<=x[i]<=m:
12 re=False
13 elif int(a)==11:
14 for i in range(len(x)):
15 if not "0"<=x[i]<"9" and x[i]!="A":
16 re=False
17 elif int(a)==12:
18 for i in range(len(x)):
19 if not "0"<=x[i]<"9" and not "A"<=x[i]<="B":
20 re=False
21 elif int(a)==13:
22
23 for i in range(len(x)):
24 if not "0"<=x[i]<"9" and not "A"<=x[i]<="C":
25 re=False
26 elif int(a)==14:
27 for i in range(len(x)):
28 if not "0"<=x[i]<"9" and not "A"<=x[i]<="D":
29 re=False
30 elif int(a)==15:
31 for i in range(len(x)):
32 if not "0"<=x[i]<"9" and not "A"<=x[i]<="E":
33 re=False
34 elif int(a)==16:
35 for i in range(len(x)):
36 if not "0"<=x[i]<"9" and not "A"<=x[i]<="F":
37 re=False
38 return re
39 def conv10_b(x,b):
40 ch=""
41 x=int(x)
42 b=int(b)
43 if b<=10:
44 while x!=0:
45 a=x%b
46 ch=str(a)+ch
47 x=x//b
48 else :
49 while x!=0:
50 a=x%b
51 if a<=9:
52 ch=str(a)+ch
53 else :
54 ch=chr(a+55)+ch
55 x=x//b
56 return ch
57 def convb_10(x,a):
58 s=0
59 a=int(a)
60 p=1
61 for i in range(len(x)-1,-1,-1):
62 if "0"<=x[i]<="9":
63
64 s=s+int(x[i])*p
65 p=p*a
66 else :
67 s=s+(ord(x[i])-55)*p
68 p=p*a
69
file:///C:/Users/Msi/AppData/Roaming/Thonny/temp/thonny_qf53489l.html 1/2
27/04/2024 17:59 conv.py
70 return str(s)
71
72 def convertir():
73 x=w.lineEdit.text()
74 a=w.comboBox.currentText()
75 b=w.comboBox_2.currentText()
76 if not verifbase(x,a):
77 QMessageBox.critical(w,"ERREURE ","Nombre non valide !!!")
78 w.lineEdit.setText("")
79 else :
80 if a==b:
81 w.lineEdit_2.setText(x)
82 elif a=="10" :
83 ch=conv10_b(x,b)
84 w.lineEdit_2.setText(ch)
85 elif b=="10":
86 ch=convb_10(x,a)
87 w.lineEdit_2.setText(ch)
88
89 else:
90 ch1=convb_10(x,a)
91 ch2=conv10_b(ch1,b)
92 w.lineEdit_2.setText(ch2)
93 def effacer():
94 w.lineEdit.clear()
95 w.lineEdit_2.clear()
96 w.comboBox.setCurrentIndex(0)
97 w.comboBox_2.setCurrentIndex(0)
98 def fermer():
99 w.close()
100
101 app=QApplication([])
102 w=loadUi("conversion.ui")
103 w.show()
104 w.pushButton.clicked.connect(convertir)
105 w.pushButton_2.clicked.connect(effacer)
106 w.pushButton_3.clicked.connect(fermer)
107 app.exec_()

file:///C:/Users/Msi/AppData/Roaming/Thonny/temp/thonny_qf53489l.html 2/2

You might also like