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