
发奋图强为您分享以下优质知识
在Python中,二进制转换可以通过多种方法实现,具体取决于数据类型和转换需求。以下是常用方法及示例:
一、整数与浮点数的二进制转换
- 使用内置函数 `bin()`:
```python
num = 42
binary = bin(num)[2:] 去掉前缀'0b'
print(f"十进制{num}转二进制:{binary}") 输出: 101010
```
- 使用字符串格式化:
```python
num = 42
binary = "{0:b}".format(num)
print(binary) 输出: 101010
```
- 使用位运算符:
```python
num = 42
binary = ""
while num >
0:
binary = str(num % 2) + binary
num = num // 2
print(binary) 输出: 101010
```
浮点数转二进制
使用 `struct` 模块打包为二进制数据:
```python
import struct
num = 3.14
binary_code = struct.pack('!f', num)
print(binary_code) 输出: b'xcdxccx8c@'
```
二、字符与字符串的二进制转换
字符转二进制
使用 `ord()` 函数获取字符的ASCII码,再转换为二进制:
```python
char = 'A'
binary = bin(ord(char))
print(binary) 输出: 0b1000001
```
或使用 `encode()` 方法直接获取二进制表示:
```python
char = 'A'
binary = char.encode()
print(binary) 输出: b'65'
```
字符串转二进制
使用 `encode()` 方法将字符串编码为字节串:
```python
text = "Hello, World!"
binary = text.encode('utf-8')
print(binary) 输出: b'Hello, World!'
```
三、文件与二进制数据的读写
写入二进制文件
使用 `open()` 函数以二进制模式写入数据:
```python
with open('test.bin', 'wb') as f:
f.write(b'Hello, binary world!')
```
读取二进制文件
使用 `open()` 函数以二进制模式读取数据:
```python
with open('test.bin', 'rb') as f:
data = f.read()
print(data) 输出: b'Hello, binary world!'
```
文件内容转换示例
将文本文件转换为二进制:
```python
source_file = open('source.txt', 'r')
binary_content = bytes(source_file.read(), 'utf-8')
with open('source.bin', 'wb') as f:
f.write(binary_content)
```
四、其他进制转换(扩展)
十六进制转二进制:
先将十六进制转换为十进制,再转换为二进制:
```python
hex_num = "1A3F"
dec_num = int(hex_num, 16)
binary_num = bin(dec_num)[2:]
print(binary_num) 输出: 1101000111111
```
负数处理:
负数无二进制表示(需使用补码形式):
```python
num = -42
binary = bin(num & 0xffffffff) 32位补码
print(binary) 输出: 11111111111111111111111111010110
```
以上方法覆盖了常见场景,可根据具体需求选择合适的方式。例如,`bin()` 和 `struct` 模块适用于整数和浮点数,`encode()` 适用于字符和字符串,而文件操作则涉及二进制数据的读写。