67. Add Binary

本文介绍了两种将两个二进制字符串相加的方法。一种是手动转换为十进制数进行计算后再转换回二进制字符串;另一种是利用Python内置函数int()和bin()简化流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# coding=utf-8

#这是自己想的方法
def addBinary(a, b):
    """
    :type a: str
    :type b: str
    :rtype: str
    将二进制字符串转为十进制,方法是按位分开乘以2的l-i-1幂
    然后转为二进制字符串
    """
    num1 = 0
    num2 = 0
    l1 = len(a)
    l2 = len(b)
    for i in range(l1):
        # python中字符串本身就是一个数组,所以直接索引就行
        num1 += int(a[i])*(2**(l1-i-1))
    for i in range(l2):
        num2 += int(b[i]) * (2 ** (l2 - i - 1))
    num = num1+num2
    # bin()可以将十进制转为二进制,返回结果是字符串,字符串可以分片
    return bin(num)[2:]
# 牛人的答案
def addBinary2(a, b):
    """
    :type a: str
    :type b: str
    :rtype: str
    方法一样,不过调用了python内置的将二进制字符串转为十进制int的方法
    """
    # int(a,base = 2)是把其他类型的二进制a转为十进制int,base还可以是8,16
    return bin(int(a,base=2) + int(b,base=2))[2:]

 

转载于:https://www.cnblogs.com/stAr-1/p/8078945.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值