首页  > 教育解读  > 怎样用python将二进制转十进制

怎样用python将二进制转十进制

2025-05-03 22:40:50
梦境编织者
梦境编织者已认证

梦境编织者为您分享以下优质知识

在Python中,将二进制转换为十进制主要有以下几种方法,推荐使用内置函数`int()`,因为它简洁高效:

一、使用内置函数`int()`

这是最简单且推荐的方法,通过传递二进制字符串和基数2实现转换。

```python

binary_string = '1010'

decimal_number = int(binary_string, 2)

print(decimal_number) 输出: 10

```

解释:`int()`函数接受两个参数,第一个是待转换的字符串,第二个是基数(此处为2表示二进制)。

二、手动实现转换

通过按权展开法手动计算二进制对应的十进制值。

```python

def binary_to_decimal(binary_str):

decimal_number = 0

binary_str = binary_str[::-1] 反转字符串

for index, digit in enumerate(binary_str):

if digit not in '01':

raise ValueError("Invalid binary digit")

decimal_number += int(digit) * (2 index)

return decimal_number

binary_str = '1010'

print(binary_to_decimal(binary_str)) 输出: 10

```

步骤说明:

1. 反转二进制字符串(如`1010`变为`0101`);

2. 从右到左遍历每一位,计算`digit * 2^index`并累加。

三、错误处理示例

在手动转换时,需注意输入验证。

```python

def binary_to_decimal(binary_str):

if not binary_str:

raise ValueError("Empty string")

if not all(char in '01' for char in binary_str):

raise ValueError("Non-binary value")

return sum(int(digit) * (2 index) for index, digit in enumerate(binary_str[::-1]))

try:

binary_str = input("Enter binary number: ")

print(binary_to_decimal(binary_str))

except ValueError as e:

print(e)

```

四、其他方法

使用`numpy`库(适用于处理大量数据):

```python

import numpy as np

def binary_to_decimal_np(binary_array):

return np.dot(binary_array, 2 np.arange(len(binary_array))[::-1])

binary_array = np.array([1, 0, 1, 0])

print(binary_to_decimal_np(binary_array)) 输出: 10

```

适用于将二进制数组转换为十进制数。

总结

推荐使用`int()`函数,代码简洁且性能最优;

手动实现适合教学或理解转换原理;

错误处理可避免非法输入导致的异常;

`numpy`方法适合批量处理数据。