Skip to content

Commit 9d0eeff

Browse files
authored
Binary Calculator GUI
1 parent f559ba1 commit 9d0eeff

File tree

4 files changed

+190
-0
lines changed

4 files changed

+190
-0
lines changed
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
from tkinter import *
2+
window = Tk()
3+
window.title("Standard Binary Calculator")
4+
window.resizable(0, 0)
5+
6+
#lets create binary didgits
7+
def f1():
8+
s = e1_val.get()
9+
e1.delete(first=0, last=len(s))
10+
def f2():
11+
s = e1_val.get()
12+
e1.insert(END, "1")
13+
def f3():
14+
s = e1_val.get()
15+
e1.insert(END, "0")
16+
17+
#this loop is for the -, +, / and * operators
18+
def f4():
19+
x = 0
20+
s = e1_val.get()
21+
for i in range(0, len(s)):
22+
if s[i] == '/' or s[i] == 'X' or s[i] == '+' or s[i] == '-':
23+
a = s[0:i]
24+
b = s[i + 1:len(s)]
25+
if s[i] == '-':
26+
x = sub(int(a), int(b))
27+
elif s[i] == '/':
28+
x = int(int(a) / int(b))
29+
elif s[i] == 'X':
30+
x = int(int(a) * int(b))
31+
elif s[i] == '+':
32+
x = int(add(int(a), int(b)))
33+
34+
e1.delete(first=0, last=len(s))
35+
e1.insert(END, "")
36+
e1.insert(END, str(x))
37+
38+
39+
def bin_to_dec(n):
40+
num = n
41+
dec_value = 0
42+
base = 1
43+
temp = num
44+
while (temp):
45+
last_digit = temp % 10
46+
temp = int(temp / 10)
47+
48+
dec_value += last_digit * base
49+
base = base * 2
50+
return dec_value
51+
52+
#now, will add
53+
def add(x, y):
54+
a = bin_to_dec(x)
55+
b = bin_to_dec(y)
56+
c = a + b
57+
d = bin(c).replace("0b", "")
58+
return d
59+
60+
#this is for -
61+
def sub(x, y):
62+
a = bin_to_dec(x)
63+
b = bin_to_dec(y)
64+
c = a - b
65+
d = bin(c).replace("0b", "")
66+
return d
67+
68+
#this is for function run
69+
def f5():
70+
x = 0
71+
s = e1_val.get()
72+
flag = 1
73+
for i in range(0, len(s)):
74+
if s[i] == '/' or s[i] == 'X' or s[i] == '+' or s[i] == '-':
75+
flag = 0
76+
a = s[0:i]
77+
b = s[i + 1:len(s)]
78+
if s[i] == '-':
79+
x = sub(int(a), int(b))
80+
elif s[i] == '/':
81+
x = int(int(a) / int(b))
82+
elif s[i] == 'X':
83+
x = int(int(a) * int(b))
84+
elif s[i] == '+':
85+
x = int(add(int(a), int(b)))
86+
if flag == 0:
87+
e1.delete(first=0, last=len(s))
88+
e1.insert(END, str(x))
89+
e1.insert(END, "+")
90+
91+
92+
def f6():
93+
x = 0
94+
s = e1_val.get()
95+
flag = 1
96+
for i in range(0, len(s)):
97+
if s[i] == '/' or s[i] == 'X' or s[i] == '+' or s[i] == '-':
98+
flag = 0
99+
a = s[0:i]
100+
b = s[i + 1:len(s)]
101+
if s[i] == '-':
102+
x = sub(int(a), int(b))
103+
elif s[i] == '/':
104+
x = int(int(a) / int(b))
105+
elif s[i] == 'X':
106+
x = int(int(a) * int(b))
107+
elif s[i] == '+':
108+
x = int(add(int(a), int(b)))
109+
if flag == 0:
110+
e1.delete(first=0, last=len(s))
111+
e1.insert(END, str(x))
112+
e1.insert(END, "-")
113+
114+
115+
def f7():
116+
x = 0
117+
s = e1_val.get()
118+
flag = 1
119+
for i in range(0, len(s)):
120+
if s[i] == '/' or s[i] == 'X' or s[i] == '+' or s[i] == '-':
121+
flag = 0
122+
a = s[0:i]
123+
b = s[i + 1:len(s)]
124+
if s[i] == '-':
125+
x = sub(int(a), int(b))
126+
elif s[i] == '/':
127+
x = int(int(a) / int(b))
128+
elif s[i] == 'X':
129+
x = int(int(a) * int(b))
130+
elif s[i] == '+':
131+
x = int(add(int(a), int(b)))
132+
if flag == 0:
133+
e1.delete(first=0, last=len(s))
134+
e1.insert(END, str(x))
135+
e1.insert(END, "/")
136+
137+
138+
def f8():
139+
x = 0
140+
s = e1_val.get()
141+
flag = 1
142+
for i in range(0, len(s)):
143+
if s[i] == '/' or s[i] == 'X' or s[i] == '+' or s[i] == '-':
144+
flag = 0
145+
a = s[0:i]
146+
b = s[i + 1:len(s)]
147+
if s[i] == '-':
148+
x = sub(int(a), int(b))
149+
elif s[i] == '/':
150+
x = int(int(a) / int(b))
151+
elif s[i] == 'X':
152+
x = int(int(a) * int(b))
153+
elif s[i] == '+':
154+
x = int(add(int(a), int(b)))
155+
if flag == 0:
156+
e1.delete(first=0, last=len(s))
157+
e1.insert(END, str(x))
158+
e1.insert(END, "X")
159+
160+
#creating gui
161+
e1_val = StringVar()
162+
e1 = Entry(window, textvariable=e1_val, width=50)
163+
e1.grid(row=0, column=0, columnspan=4)
164+
165+
b1 = Button(window, text="1", width=8, height=2, command=f2,bg='lightblue', fg='white')
166+
b1.grid(row=1, column=0)
167+
168+
b0 = Button(window, text="0", width=8, height=2, command=f3,bg='lightblue', fg='white')
169+
b0.grid(row=1, column=1)
170+
171+
clear = Button(window, text="C", width=8, height=2, command=f1,bg='lightblue', fg='white')
172+
clear.grid(row=1, column=2)
173+
174+
beq = Button(window, text="=", width=8, height=2, command=f4,bg='lightpink', fg='white')
175+
beq.grid(row=1, column=3)
176+
177+
badd = Button(window, text="+", width=8, height=2, command=f5,bg='lightblue', fg='white')
178+
badd.grid(row=2, column=0)
179+
180+
bsub = Button(window, text="-", width=8, height=2, command=f6,bg='lightblue', fg='white')
181+
bsub.grid(row=2, column=1)
182+
183+
bmul = Button(window, text="X", width=8, height=2, command=f8,bg='lightblue', fg='white')
184+
bmul.grid(row=2, column=2)
185+
186+
bdiv = Button(window, text="/", width=8, height=2, command=f7,bg='lightpink', fg='white')
187+
bdiv.grid(row=2, column=3)
188+
189+
#ending the loop
190+
window.mainloop()
5.67 KB
Loading
5.06 KB
Loading
4.83 KB
Loading

0 commit comments

Comments
 (0)