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

使用Python实现十进制转二进制转ASCII再转文本字符串

还原十进制数为原字符串"Hello World"

核心思路

你提到的流程是对的:先把十进制数转成二进制字符串(需补全8位对齐的前导零),再按每8位分割转成ASCII码,最后拼接成原字符串。

具体实现步骤

假设你得到的十进制数是从"Hello World"的字符ASCII二进制拼接后转换而来的(比如这个十进制数是12146064442301774950),可以用以下Python代码反向还原:

# 示例:从"Hello World"转换来的十进制数
dec_num = 12146064442301774950

# 1. 十进制转二进制字符串,去掉前缀'0b'
binary_str = bin(dec_num)[2:]

# 2. 补前导零,确保二进制总长度是8的倍数(每个ASCII字符占8位)
padding_length = (8 - len(binary_str) % 8) % 8
binary_str = '0' * padding_length + binary_str

# 3. 按每8位分割,转成十进制ASCII码
ascii_codes = [int(binary_str[i:i+8], 2) for i in range(0, len(binary_str), 8)]

# 4. 将ASCII码转成字符并拼接
original_str = ''.join(chr(code) for code in ascii_codes)

print(original_str)  # 输出:Hello World

关键说明

  • 补前导零是必须的:因为单个ASCII字符的二进制是8位,但转十进制时前导零会被忽略,所以反向转换时要补回这些零,保证每8位对应一个字符。
  • 如果你的十进制数是通过其他方式生成的(比如直接拼接每个字符的ASCII数字,如721011081081113287111114108100),则需要按约定的数字长度拆分(通常每个ASCII码补零到3位),不过在线转换器大多采用二进制拼接转十进制的方式,所以上面的代码应该适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:31:07