不用加法实现两数相加(两数均可能是负数或者0)
def add(a,b):
    #迭代
    #a^b      #无进位求和
    #(a&b)<<1 #进位
    x=0xffffffff
    a&=x
    b&=x
    while b!=0:
        a,b=a^b,(a&b)<<1&x
    return a if a<=0x7fffffff else ~(a^x)       
位运算--不用加法实现两数相加--Python解法
阅读 86
2023-04-10
不用加法实现两数相加(两数均可能是负数或者0)
def add(a,b):
    #迭代
    #a^b      #无进位求和
    #(a&b)<<1 #进位
    x=0xffffffff
    a&=x
    b&=x
    while b!=0:
        a,b=a^b,(a&b)<<1&x
    return a if a<=0x7fffffff else ~(a^x)       
相关推荐
精彩评论(0)