从键盘输入两个正整数 n1和 n2,代表两个二进制数的位数,接下来两行输入长度分别为 n1 和 n2 的数组,数组元素为 0或者1(长度大于1 时,第一个元素必不为0),数组元素用空格隔开“
时间: 2023-06-20 09:10:31 浏览: 56
以下是 Python 代码实现,可以实现将两个二进制数相加:
```python
n1 = int(input()) # 第一个二进制数的位数
n2 = int(input()) # 第二个二进制数的位数
# 输入第一个二进制数
num1 = list(map(int, input().split()))
while len(num1) < n1:
num1.insert(0, 0)
# 输入第二个二进制数
num2 = list(map(int, input().split()))
while len(num2) < n2:
num2.insert(0, 0)
# 将两个二进制数相加
carry = 0 # 进位标志
result = [] # 存储相加的结果
for i in range(max(n1, n2)):
# 对每一位进行相加并处理进位
temp_sum = num1[-i-1] + num2[-i-1] + carry
if temp_sum >= 2:
carry = 1
temp_sum -= 2
else:
carry = 0
result.insert(0, temp_sum)
# 处理最高位的进位
if carry == 1:
result.insert(0, 1)
# 输出结果
print(''.join(str(x) for x in result))
```
注意,这里使用了一个 `carry` 变量来表示进位标志。在每次相加时,如果有进位,则将 `carry` 设为 1,并在下一次相加时加上这个进位。最后如果最高位有进位,则将其加入结果中即可。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)