Skip to content

Commit c1f59f2

Browse files
Bitwise Addition
1 parent fac0a18 commit c1f59f2

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

bitwise_addition.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
def calclen(num1,num2):
2+
a = len(num1)
3+
b = len(num2)
4+
if a!=b :
5+
if a>b:
6+
for _ in range(a-b):
7+
num2='0'+num2
8+
else:
9+
for _ in range(b-a):
10+
num1='0'+num1
11+
return num1,num2
12+
13+
def fromdectobin(num,baseA,baseB):
14+
strr=""
15+
while num>=1:
16+
n = num%baseB
17+
if n>= 0 and n<=9:
18+
n = chr(n + ord('0'))
19+
else:
20+
n = chr(n - 10 + ord('A'))
21+
strr = strr + str(n)
22+
num = num//baseB
23+
strr = ''.join(reversed(strr))
24+
return strr
25+
26+
def bit_add(num1,num2):
27+
carry="0"
28+
summ=""
29+
for i in range(len(num1)-1,-1,-1):
30+
if num1[i]=='0' and num2[i]=='0':
31+
if carry=='1':
32+
summ='1'+summ
33+
carry='0'
34+
else:
35+
summ='0'+summ
36+
elif num1[i]=='1' and num2[i]=='1':
37+
if carry=='1':
38+
summ='1'+summ
39+
else:
40+
summ='0'+summ
41+
carry='1'
42+
elif ((num1[i]=='1' and num2[i]=='0') or (num1[i]=='0' and num2[i]=='1')):
43+
if carry=='1':
44+
summ='0'+summ
45+
else:
46+
summ='1'+summ
47+
48+
if carry=='1':
49+
summ='1'+summ
50+
print("Bitwise Addition of",num1,"and",num2,"is",summ)
51+
return
52+
53+
num1 = int(input("Enter first number : "))
54+
num2 = int(input("Enter second number : "))
55+
bnum1 = fromdectobin(num1,10,2)
56+
bnum2 = fromdectobin(num2,10,2)
57+
bnum1,bnum2 = calclen(bnum1,bnum2)
58+
print("The binary of",num1,"is",bnum1)
59+
print("The binary of",num2,"is",bnum2)
60+
bit_add(bnum1,bnum2)

0 commit comments

Comments
 (0)