Python 我的位加法器的总和只工作了一部分时间

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

我的逻辑似乎有问题,因为它并不总是给出正确的输出。例如,当我输入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 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