使用 Python语言分别定义二进制数加、减、乘、除函数, 并调用函数。
时间: 2024-10-12 14:08:08 浏览: 25
使用Python内置的模块与函数进行不同进制的数的转换
在Python中,由于二进制运算直接支持,我们可以直接对二进制字符串进行数学运算,无需定义特定的函数。但是,如果你想要编写自定义函数来进行更复杂的操作,比如处理负数或者异常情况,那需要稍微复杂一些。以下是简单版本的函数定义,它们直接对二进制字符串进行位运算:
```python
# 定义二进制加法函数
def binary_add(bin_a, bin_b):
return bin(int(bin_a, 2) + int(bin_b, 2))[2:]
# 定义二进制减法函数
def binary_subtract(bin_a, bin_b):
return bin(int(bin_a, 2) - int(bin_b, 2))[2:]
# 定义二进制乘法函数 (按位与)
def binary_multiply(bin_a, bin_b):
result = ''
for i in range(max(len(bin_a), len(bin_b))):
bit_a = bin_a[-(i+1)] if i < len(bin_a) else '0'
bit_b = bin_b[-(i+1)] if i < len(bin_b) else '0'
result += str(int(bit_a) & int(bit_b))
return result
# 二进制除法函数通常涉及到位移和比较,Python内置的bin()函数不直接支持除法
# 以下是一种简化版的除法,仅处理非零除数的情况:
def binary_divide(bin_a, bin_b):
quotient = ''
while bin_b != '0':
bit_a = bin_a[-1]
bit_b = bin_b[-1]
quotient += str(int(bit_a) // int(bit_b)) # 这里假设bin_b总是大于等于1
bin_a = bin_a[:-1]
bin_b = bin_b[:-1]
return '0b' + quotient if bin_a == '0' else 'Error'
# 调用函数
bin_a = '1010'
bin_b = '1100'
print(f"{bin_a} + {bin_b} = {binary_add(bin_a, bin_b)}")
print(f"{bin_a} - {bin_b} = {binary_subtract(bin_a, bin_b)}")
print(f"{bin_a} * {bin_b} = {binary_multiply(bin_a, bin_b)}")
try:
print(f"{bin_a} / {bin_b} = {binary_divide(bin_a, bin_b)}")
except Exception as e:
print(e)
阅读全文