关于bitwise and/or 的问题

有三道问题
1.Bitwise and,or

img

2.32-bit full adder

img


3.subtraction

img

##1
def and_32bit(a,b):
    return tuple([int(v) & int(b[i]) for i,v in enumerate(a)])

def or_32bit(a,b):
    return tuple([int(v) | int(b[i]) for i,v in enumerate(a)])

##2
def add32(a, b):
    x, y = int(a, 2), int(b, 2)
    c1=max(len(bin(x)),len(bin(y)))
    while y:
        answer = x ^ y
        carry = (x & y) << 1
        x, y = answer, carry
    return bin(x)[2:].zfill(32),len(bin(x))-c1

##3
def addsub32(a, b,control):
    if control==0:
        return add32(a,b)
    x, y = int(a, 2), int(b, 2)
    c1=max(len(bin(x)),len(bin(y)))
    a = a.zfill(32)
    b = b.zfill(32)
    new_binary = ''
    carry = 0
    i = len(a)-1
    while i >= 0:
        s = int(a[i]) - int(b[i])
        if s == -1:
            if carry == 0:
                carry = 1
                new_binary = new_binary + "1"
            else:
                carry = 1
                new_binary = new_binary + "0"
        if s == 0:
            if carry == 0:
                carry = 0
                new_binary = new_binary + "0"
            else:
                carry = 1
                new_binary = new_binary + "1"
        if s == 1:
            if carry == 0:
                carry = 0
                new_binary = new_binary + "1"
            else:
                carry = 0
                new_binary = new_binary + "0"
        i = i - 1
    if carry > 0:
        new_binary = new_binary + "1"
    return new_binary[::-1],0

把报错复制出来发给我看一下

OpenCV之bitwise_and、bitwise_or等图像的与或操作
https://blog.csdn.net/u013925378/article/details/106430639