Python 二进制转十进制

二进制转十进制的原理相对简单。
假设有二进制数为abc.def,对应的十进制数为A.B
那么整数部分A = a*2^2 + b*2^1 + c*2^0, 小数部分B = d*2^(-1) + e*2^(-2) + f*2^(-3)
实现程序如下:

# 二进制转十进制
def binary_to_decimal(binary):
    decimal = 0
    integer_part, fractional_part = binary.split('.')  # 拆分整数部分和小数部分

    # 转换整数部分为十进制
    for i in range(len(integer_part)):
        digit = int(integer_part[i])
        power = len(integer_part) - i - 1
        decimal += digit * (2 ** power)

    # 转换小数部分为十进制
    for i in range(len(fractional_part)):
        digit = int(fractional_part[i])
        power = -(i + 1)
        decimal += digit * (2 ** power)

    return decimal

标签: python, 算法, 十进制, 二进制

添加新评论