计算器加减乘除二进制计算代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算器加减乘除二进制计算代码 #定义函数,实现二进制加法
def binary_addition(a, b):
carry = 0
result = ''
# 将两个二进制数的位数对齐
a = a.zfill(len(b))
b = b.zfill(len(a))
for i in range(len(a) - 1, -1, -1):
sum = int(a[i]) + int(b[i]) + carry
if sum >= 2:
carry = 1
sum -= 2
else:
carry = 0
result = str(sum) + result
if carry == 1:
result = '1' + result
return result
# 定义函数,实现二进制减法
def binary_subtraction(a, b):
borrow = 0
result = ''
# 将两个二进制数的位数对齐
a = a.zfill(len(b))
b = b.zfill(len(a))
for i in range(len(a) - 1, -1, -1): diff = int(a[i]) - int(b[i]) - borrow if diff < 0:
borrow = 1
diff += 2
else:
borrow = 0
result = str(diff) + result
return result
# 定义函数,实现二进制乘法
def binary_multiplication(a, b):
result = '0'
# 逐位计算乘积
for i in range(len(b) - 1, -1, -1): if b[i] == '1':
temp = a
for j in range(i, len(b) - 1):
temp += '0'
result = binary_addition(result, temp)
return result
# 定义函数,实现二进制除法
def binary_division(dividend, divisor):
quotient = ''
remainder = dividend
# 逐位进行除法运算
while len(remainder) >= len(divisor):
temp = divisor
temp_quotient = '1'
# 将除数左移,直到大于被除数
while len(temp) < len(remainder):
temp += '0'
temp_quotient += '0'
# 减去除数,得到商和余数
remainder = binary_subtraction(remainder, temp)
quotient = binary_addition(quotient, temp_quotient)
return quotient, remainder
```
上述代码定义了四个函数,分别对应二进制加减乘除四种基本运算。
其中,二进制加法和减法实现方式类似,都是逐位计算,进位或借位,最终得到结果。
二进制乘法采用了类似于竖式乘法的方法,逐
位计算部分积,再相加得到最终乘积。
二进制除法则采用了类似于长除法的方法,逐位进行除法运算,得到商和余数。