Python 我的位加法器的总和只工作了一部分时间
我的逻辑似乎有问题,因为它并不总是给出正确的输出。例如,当我输入2和2时,我得到[0,0,0,0,0,0,1,0,1],我应该得到[0,0,0,0,0,0,1,0,0] 我认为我的代码中有一个逻辑错误,当它接受2个输入时,但我看不出它来自哪里 8位二进制加法器 代码如下 环路 退出Python 我的位加法器的总和只工作了一部分时间,python,python-3.x,Python,Python 3.x,我的逻辑似乎有问题,因为它并不总是给出正确的输出。例如,当我输入2和2时,我得到[0,0,0,0,0,0,1,0,1],我应该得到[0,0,0,0,0,0,1,0,0] 我认为我的代码中有一个逻辑错误,当它接受2个输入时,但我看不出它来自哪里 8位二进制加法器 代码如下 环路 退出 carry变量应初始化为0而不是空字符串”,以便XOR函数可以将a==b计算为True,并在第一位为0时正确返回0 更改: carry = "" 致: #formula for sum def calculateS
carry
变量应初始化为0
而不是空字符串”
,以便XOR
函数可以将a==b
计算为True
,并在第一位为0
时正确返回0
更改:
carry = ""
致:
#formula for sum
def calculateSum(Array1,Array2):
carry = ""
sumof = []
for index in range(len(Array1)):
list2 = Array2[index]
sec_xor_form = XOR(Array1[index],Array2[index])
sumof.append(XOR(sec_xor_form,carry))
carry = carryformula(Array1[index],Array2[index],sec_xor_form,carry)
return list(reversed(sumof))
while True:
#Call the function from within the while True loop
Array1 = vaildNumberA()
Array2 = vaildNumberB()
total = calculateSum(list(reversed(Array1)),list(reversed(Array2)))
print(total)
quit = input("if want to quit type q: ")
if quit == 'q':
break
carry = ""
carry = 0