首页  > 教育解读  > python怎么将二进制转为十进制

python怎么将二进制转为十进制

2025-05-07 20:12:50
起航
起航已认证

起航为您分享以下优质知识

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'`);

手动方法需注意处理负数和非法字符。