首页  > 教育解读  > python如何把整数转二进制

python如何把整数转二进制

2025-05-02 08:24:18
风雨同舟
风雨同舟已认证

风雨同舟为您分享以下优质知识

在Python中,将整数转换为二进制表示可以通过以下几种方法实现:

一、使用内置函数 `bin()`

基本用法

`bin()` 函数可将整数转换为以 `0b` 开头的二进制字符串。例如:

```python

num = 42

binary_representation = bin(num)

print(binary_representation) 输出: 0b101010

```

若需去除前缀 `0b`,可通过切片操作 `bin(num)[2:]` 实现:

```python

binary_representation = bin(num)[2:]

print(binary_representation) 输出: 101010

```

格式化输出

可以使用 `format()` 函数指定输出格式,例如固定长度的二进制表示:

```python

num = 10

binary_representation = format(num, "b") 默认填充前导零

print(binary_representation) 输出: 00001010

binary_representation = format(num, "b") 带符号二进制

print(binary_representation) 输出: 0b1010

```

二、手动实现转换

通过不断除以2取余数,将余数逆序排列:

```python

def int_to_binary(num):

if num == 0:

return "0"

binary = ""

while num >

0:

binary = str(num % 2) + binary

num = num // 2

return binary

print(int_to_binary(50000000)) 输出: 11111100111001

```

三、使用位运算

通过位运算直接构造二进制字符串:

```python

def bitwise_to_binary(num):

if num == 0:

return "0"

binary = ""

for i in range(32): 假设32位整数

bit = (num >

>

i) & 1

binary += str(bit)

return binary

print(bitwise_to_binary(12345)) 输出: 0000000011000000111001

```

四、使用 `struct` 模块(适用于二进制数据打包/解包)

适用于处理二进制数据流,例如将整数列表打包为二进制格式:

```python

import struct

def list_to_binary(data):

return struct.pack(f'>

{len(data)}I', *data)

def binary_to_list(binary_data, length):

return struct.unpack(f'>

{length}I', binary_data)

data = [1, 2, 3, 4, 5]

binary_data = list_to_binary(data)

print(binary_data) 输出: b'x01x02x03x04x05'

recovered_list = binary_to_list(binary_data, len(data))

print(recovered_list) 输出: [1, 2, 3, 4, 5]

```

总结

快速转换:

优先使用 `bin()` 函数,简单且功能全面;

格式化需求:结合 `format()` 函数实现固定长度输出;

底层操作:手动实现或位运算适合学习与性能优化;

二进制处理:使用 `struct` 模块处理大规模数据打包/解包。