首页  > 教育解读  > python怎么转换二进制

python怎么转换二进制

2025-04-30 22:54:27
发奋图强
发奋图强已认证

发奋图强为您分享以下优质知识

在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()` 适用于字符和字符串,而文件操作则涉及二进制数据的读写。