二进制与十进制转换器

# 题目一:二进制与十进制的相互转换
def d2b(decimal_int):
    if decimal_int>sys.maxsize or decimal_int<(0-sys.maxsize):
        print ('Parameter Error')
        return -1
    la = []
    if decimal_int < 0:
        return (bin(((1 << 32) - 1) & decimal_int)[2:]).zfill(32)
    while True:
        decimal_int, remainder = divmod (decimal_int, 2)
        la.append (str (remainder))
        if decimal_int == 0:
            return ''.join (la[::-1])


def b2d(binary_string, flag = False):
    if flag==False:
        sum = 0
        length = len (binary_string)
        if length > 32:
            print ('Parameter Error')
            return -1
        for i in range (length):
            sum += int (binary_string[len (binary_string) - 1 - i]) * pow (2, i)
        # print(u"转换成十进制数是:", sum)
        return sum
    else:
        binary_string=list(binary_string)
        binary_string[0]='0'
        binary_string=''.join(binary_string)
        sum = 0
        length = len (binary_string)
        if length > 32:
            print ('Parameter Error')
            return -1
        for i in range (length):
            sum += int (binary_string[len (binary_string) - 1 - i]) * pow (2, i)
        # print(u"转换成十进制数是:", sum)
        return (0-sum)

如果对您有帮助,请打赏!谢谢!

猜你喜欢

转载自blog.csdn.net/qq_24624539/article/details/86611527