首页  > 教育解读  > python如何将字符转为二进制数

python如何将字符转为二进制数

2025-05-04 04:52:32
李老师
李老师已认证

李老师为您分享以下优质知识

在Python中,将字符转换为二进制码主要有以下三种方法,均基于字符的ASCII码值进行转换:

一、使用 `bin()` 函数(推荐)

获取ASCII码:

通过 `ord()` 函数将字符转换为整数(ASCII码)。

转换为二进制:

使用 `bin()` 函数将整数转换为二进制字符串,结果以 `0b` 开头。

去除前缀:

通过切片 `bin(ascii_code)[2:]` 去掉 `0b` 前缀。

示例代码:

```python

def char_to_binary(char):

ascii_code = ord(char)

binary_string = bin(ascii_code)[2:]

return binary_string

使用示例

print(char_to_binary('A')) 输出: 1000001

```

二、使用格式化字符串(`format()` 或 `zfill()`)

基础转换:

通过 `format()` 函数将ASCII码转换为二进制字符串,支持补齐位数(如8位)。

补齐位数:

使用 `zfill(8)` 方法将二进制字符串补齐为8位。

示例代码:

```python

def char_to_binary_padded(char, bits=8):

ascii_code = ord(char)

binary_string = format(ascii_code, f'0{bits}b')

return binary_string

使用示例

print(char_to_binary_padded('A')) 输出: 00000001

```

三、使用 `struct.pack()` 函数(适用于二进制文件操作)

编码为二进制:

通过 `struct.pack('s', string.encode('utf-8'))` 将字符串转换为二进制序列(以 `b` 格式)。

写入文件:

使用 `open()` 以二进制写模式保存序列。

示例代码:

```python

import struct

def string_to_binary_file(string, filename):

binary_data = struct.pack('s', string.encode('utf-8'))

with open(filename, 'wb') as f:

f.write(binary_data)

使用示例

string_to_binary_file('hello, world!', 'output.bin')

```

总结

简单转换:优先使用 `bin()` 函数结合 `ord()`,代码简洁且通用。

固定位数:使用 `format()` 或 `zfill()` 进行补齐。

文件操作:通过 `struct.pack()` 处理二进制文件。