首页  > 教育解读  > python中怎样转二进制

python中怎样转二进制

2025-05-01 18:42:02
从未停步
从未停步已认证

从未停步为您分享以下优质知识

Python中将数据转换为二进制的方法可分为以下三类,涵盖整数、字符及复杂对象:

一、整数转换为二进制

使用内置函数 `bin()`

直接将整数转换为二进制字符串,返回值以 `0b` 开头。例如:

```python

num = 10

binary_str = bin(num) 输出: '0b1010'

binary_num = binary_str[2:] 去掉前缀后输出: '1010'

```

若需固定位数,可使用 `zfill()` 补齐,例如 `zfill(8)` 将 `10` 转换为 `00001010`。

手动实现算法

通过不断取余和整除操作,将十进制数转换为二进制字符串。例如:

```python

def decimal_to_binary(n):

if n == 0:

return '0'

binary_num = ''

while n >

0:

binary_num = str(n % 2) + binary_num

n = n // 2

return binary_num

```

二、字符转换为二进制

通过ASCII码转换

先使用 `ord()` 获取字符的ASCII码(整数),再转换为二进制。例如:

```python

char = 'A'

ascii_value = ord(char)

binary_value = bin(ascii_value)[2:] 输出: '1000001'

```

若需固定位数,可用 `zfill(8)` 补齐,例如 `zfill(8)` 将 `65` 转换为 `01000001`。

三、复杂对象序列化

使用 `pickle` 模块将Python对象(如字典、自定义类实例)转换为二进制数据流。例如:

```python

import pickle

class Person:

def __init__(self, name, age):

self.name = name

self.age = age

person = Person("Alice", 30)

binary_data = pickle.dumps(person) 输出序列化后的二进制数据

```

四、二进制数据操作

使用 `bytes` 对象

适用于存储和操作二进制数据,如文件读写。例如:

```python

data = b'Hello, binary world!'

with open('test.bin', 'wb') as f:

f.write(data) 写入二进制数据

with open('test.bin', 'rb') as f:

loaded_data = f.read() 读取二进制数据

```

使用 `struct` 模块

用于打包和解包二进制数据,支持多种数据类型组合。例如:

```python

import struct

packed_data = struct.pack('if f s', 123, 45.6, b'hello') 打包整数、浮点数和字符串

```

以上方法可根据具体需求选择,内置函数和 `pickle` 模块适用于快速转换,而 `struct` 和 `bytes` 更适合处理二进制数据流。