在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()` 处理二进制文件。