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

Python中二进制转字符串的实现方法求助

二进制转字符串的Python解决方案

嘿,我太懂这种反向转换找不到门道的感觉了!其实Python里把二进制串转成字符串有好几种简单实用的方法,我给你一一拆解:

单个字符的二进制转字符串

如果你的二进制串对应单个字符(比如'0b1100001'或者'1100001'),用int()配合chr()就能轻松搞定:

# 带0b前缀的二进制串
binary_single = '0b1100001'
# 用int把二进制转成十进制编码,base=2指定是二进制格式
char_code = int(binary_single, 2)
# 再用chr转成对应字符
result = chr(char_code)
print(result)  # 输出 'a'

# 不带前缀的情况更直接
binary_no_prefix = '1100001'
result = chr(int(binary_no_prefix, 2))
print(result)  # 同样输出 'a'

多字符的长二进制串转字符串

如果是多个字符拼接的二进制串(比如'0110000101100010'对应'ab'),可以写个小函数来批量处理:

def binary_to_str(binary_str):
    # 先移除可能存在的0b前缀
    binary_str = binary_str.replace('0b', '')
    # 补前导0确保长度是8的倍数(ASCII字符都是8位)
    while len(binary_str) % 8 != 0:
        binary_str = '0' + binary_str
    # 每8位分割一次,逐个转成字符再拼接成字符串
    chars = [chr(int(binary_str[i:i+8], 2)) for i in range(0, len(binary_str), 8)]
    return ''.join(chars)

# 测试示例
long_binary = '0b011000010110001001100011'
print(binary_to_str(long_binary))  # 输出 'abc'

用字节对象转换(更贴近底层)

你也可以借助bytes对象来完成转换,适合需要处理特定编码的场景:

# 单个字符场景
binary_str = '01100001'
byte_data = bytes([int(binary_str, 2)])
result = byte_data.decode('utf-8')
print(result)  # 输出 'a'

# 多字符长串场景
long_binary = '0110000101100010'
byte_list = [int(long_binary[i:i+8], 2) for i in range(0, len(long_binary), 8)]
byte_data = bytes(byte_list)
result = byte_data.decode('utf-8')
print(result)  # 输出 'ab'

小提醒

  • 如果处理的是非ASCII字符(比如中文),二进制串的长度可能不是8的倍数,这时候需要确保二进制数据是对应编码(比如UTF-8)的正确字节序列,再用decode()指定对应编码即可。
  • 记得先清理二进制串里的0b前缀,不然int()会报错哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:15:11