You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将bytes类型对象转换为二进制数?

Python bytes转32位二进制实现方法

你提供的bytes对象如下:
byte_obj = b'\x45\x10\x00\x4c\xcc\xde\x40\x00\x40\x06\x6c\x80\xc0\xa8\xd9\x17\x8d\x54\xda\x28'

首先说明:32位二进制对应4字节数据,你给出的bytes总长度为20字节,可按需求截取对应4字节段转换,以下是通用实现方案:

方案1:指定段转32位二进制字符串

以转换前4字节(默认采用大端序,适配网络报文类场景)为例:

# 截取需要转换的4字节段,此处取前4字节为例
target_bytes = byte_obj[:4]
# 转32位无符号整数
uint32_value = int.from_bytes(target_bytes, byteorder='big', signed=False)
# 转32位二进制字符串,不足位前面补0
bin_32_str = format(uint32_value, '032b')

print(bin_32_str)
# 输出:01000101000100000000000001001100

方案2:全量按4字节分组转多组32位二进制

如果需要把整个20字节拆为5组32位二进制串,可按如下实现:

bin_32_groups = []
# 步长为4遍历bytes
for i in range(0, len(byte_obj), 4):
    group_val = int.from_bytes(byte_obj[i:i+4], byteorder='big', signed=False)
    bin_32_groups.append(format(group_val, '032b'))

# 输出所有32位二进制组
for item in bin_32_groups:
    print(item)

参数说明

  • byteorder:填big为大端序(高字节在前,适配网络报文、通用协议场景),填little为小端序(低字节在前,适配x86平台本地存储场景)
  • signed:填True转换为有符号整数,填False转换为无符号整数,常规32位二进制转换填False即可
  • format参数032b:指定输出为二进制格式,总长度固定32位,不足位前面补0,刚好满足32位输出要求

内容的提问来源于stack exchange,提问作者user16350182

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 20:18:04