如何用PYTHON解决二进制求和问题

2025-11-16 15:54:31

1、打开JUPYTER NOTEBOOK。

如何用PYTHON解决二进制求和问题

2、a = "1010"

b = "1011"

Output: "10101" 这是我们要计算的最终结果

如何用PYTHON解决二进制求和问题

3、index_a = len(a) - 1

index_b = len(b) - 1

这里看似定义长度,实际要定义序号,因为要倒序的方式进行计算。

如何用PYTHON解决二进制求和问题

4、carry = 0

sum = ""

设置进位的计算变量,最终结果要以字符串为目标。

如何用PYTHON解决二进制求和问题

5、while index_a >= 0 or index_b >= 0:

    index_a, index_b = (index_a - 1), (index_b - 1)

    

因为要倒序,可以设置一下循环的条件。

如何用PYTHON解决二进制求和问题

6、while index_a >= 0 or index_b >= 0:

    if index_a >= 0:

        x = int(a[index_a])

    else:

        x = 0

让每个数相加要先转换为整型。

    index_a, index_b = (index_a - 1), (index_b - 1)

如何用PYTHON解决二进制求和问题

7、while index_a >= 0 or index_b >= 0:

    if index_a >= 0:

        x = int(a[index_a])

    else:

        x = 0

    if index_b >= 0:

        y = int(b[index_b])

    else:

        y = 0

两边都设置一下,循环完了其中一个就要等于0。

    index_a, index_b = (index_a - 1), (index_b - 1)

如何用PYTHON解决二进制求和问题

8、while index_a >= 0 or index_b >= 0:

    if index_a >= 0:

        x = int(a[index_a])

    else:

        x = 0

    if index_b >= 0:

        y = int(b[index_b])

    else:

        y = 0

    

    if (x + y + carry) % 2 == 0:

        sum = sum + "0"

每一位相加只有4种结果,0,1,2,3,。余数为0和2的时候当前的数要变为0.

    index_a, index_b = (index_a - 1), (index_b - 1)

如何用PYTHON解决二进制求和问题

9、while index_a >= 0 or index_b >= 0:

    if index_a >= 0:

        x = int(a[index_a])

    else:

        x = 0

    if index_b >= 0:

        y = int(b[index_b])

    else:

        y = 0

    

    if (x + y + carry) % 2 == 0:

        sum = sum + "0"

    else:

        sum = sum + "1"

每一位相加只有4种结果,0,1,2,3,。余数为1和3的时候当前数要变为1.

        

    index_a, index_b = (index_a - 1), (index_b - 1)

如何用PYTHON解决二进制求和问题

10、while index_a >= 0 or index_b >= 0:

    if index_a >= 0:

        x = int(a[index_a])

    else:

        x = 0

    if index_b >= 0:

        y = int(b[index_b])

    else:

        y = 0

    

    if (x + y + carry) % 2 == 0:

        sum = sum + "0"

    else:

        sum = sum + "1"

        

    carry = (x + y + carry) // 2

    if carry == 1:

        sum = sum + "1"

        

每一位相加只有4种结果,0,1,2,3。其中1和3除以2的时候余数为1。

        

    index_a, index_b = (index_a - 1), (index_b - 1)

如何用PYTHON解决二进制求和问题

11、a = "1010"

b = "1011"

index_a = len(a) - 1

index_b = len(b) - 1

carry = 0

sum = ""

while index_a >= 0 or index_b >= 0:

    if index_a >= 0:

        x = int(a[index_a])

    else:

        x = 0

    if index_b >= 0:

        y = int(b[index_b])

    else:

        y = 0

    

    if (x + y + carry) % 2 == 0:

        sum = "0" + sum

    else:

        sum = "1" + sum

        

    carry = (x + y + carry) // 2

    index_a, index_b = (index_a - 1), (index_b - 1)

    

if carry == 1:

    sum = "1" + sum

注意"0"在sum前面。然后if要和while对齐,因为如果最后还要进位的话,判断一下。

print(sum)

如何用PYTHON解决二进制求和问题

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢