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

 时间:2026-02-12 22:22:29

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解决二进制求和问题

  • C语言如何使用条件运算符的嵌套
  • 【抽象代数】二元对称多项式
  • dev-c++如何设置调试
  • 军训时女生来月经怎么办
  • 手机中国大学MOOC如何修改个人信息资料?
  • 热门搜索
    宝宝积食怎么办 怎么亲吻 长方形的体积怎么算 鬼剃头是怎么回事 产后怎么瘦肚子 手指麻木是怎么回事 舌苔发白是怎么回事 自我总结怎么写 定活两便利息怎么算 鞋带太长怎么系