二进制转十进制在Python中可通过以下两种主要方式实现:
一、使用内置函数 `int()`
这是最简洁高效的方法,适用于字符串或整数形式的二进制输入。
示例代码:
```python
二进制字符串转十进制
binary_str = '1010'
decimal_number = int(binary_str, 2)
print(decimal_number) 输出: 10
二进制整数转十进制
binary_int = 0b1010
decimal_number = int(binary_int)
print(decimal_number) 输出: 10
```
说明:
`int()` 函数接受两个参数:二进制字符串(需以 `0b` 前缀或普通二进制字符串形式)和基数 `2`,返回对应的十进制数。
适用于处理用户输入或文件中的二进制数据。
二、手动计算(按权展开求和)
通过迭代二进制位并计算其权重,适合理解底层转换逻辑。
示例代码:
```python
def binary_to_decimal(binary_str):
反转字符串便于从最低位开始计算
binary_str = binary_str[::-1]
decimal_number = 0
for index, digit in enumerate(binary_str):
检查字符是否为有效二进制位
if digit not in '01':
raise ValueError("输入包含非二进制字符")
decimal_number += int(digit) * (2 index) return decimal_number 示例 binary_str = '1010' print(binary_to_decimal(binary_str)) 输出: 10 ``` 说明:
通过 `enumerate` 遍历二进制字符串的每一位,从右至左(最低位优先)计算其对应的十进制值。
使用位运算 `2 index` 计算权重,并累加得到最终结果。
适用于教学或需要自定义验证的场景。
三、注意事项
输入验证:手动实现时需检查输入是否仅包含 `0` 和 `1`,避免非法字符导致错误。
效率对比:内置函数 `int()` 通常比手动实现更高效,建议优先使用。
以上方法可根据具体需求选择,日常开发中推荐使用内置函数以简化代码。