Python将二进制转换为十进制主要有以下两种推荐方法:
一、使用内置函数 `int()`
这是最简洁、高效的方法,适用于字符串形式的二进制数转换。
语法:
```python
int(binary_string, base=2)
```
`binary_string`:二进制数字符串(如 `'1010'`)
`base`:基数,默认为2(二进制)
示例:
```python
binary_str = '1010'
decimal_number = int(binary_str, 2)
print(decimal_number) 输出: 10
```
二、手动计算转换
适用于理解进制转换原理,通过位权展开计算。
步骤:
1. 将二进制字符串反转;
2. 从右至左遍历每一位,计算 `2^i`(i为位数索引);
3. 将所有结果累加。
示例:
```python
def binary_to_decimal(binary_str):
binary_str = binary_str.strip() 去除空格
if not binary_str:
raise ValueError("空字符串输入")
is_negative = binary_str.startswith('-')
binary_str = binary_str[1:] if is_negative else binary_str
decimal_number = 0
for index, digit in enumerate(binary_str[::-1]):
if digit not in '01':
raise ValueError("非二进制字符输入")
decimal_number += int(digit) * (2 index)
return -decimal_number if is_negative else decimal_number
binary_str = '1010'
print(binary_to_decimal(binary_str)) 输出: 10
```
注意事项
输入的二进制字符串必须以 `'0b'` 前缀(如 `'0b101'`)或纯二进制字符(如 `'1010'`);
手动方法需注意处理负数和非法字符。