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

Python中无需中间str对象生成数字的十进制字符串字节表示

无需中间字符串生成对应bytes对象的方法

可以不创建中间str对象完成需求,以下是具体实现方式:

方法:数字运算拆分+字节拼接

通过数学运算逐位提取整数的每一位数字,将每一位数字转换为对应的ASCII字节(数字n对应的ASCII码为ord('0') + n),再拼接成最终的bytes对象。

代码示例(支持正整数):

x = 123
b_result = b''
temp = x

if temp == 0:
    b_result = b'0'
else:
    while temp > 0:
        digit = temp % 10
        # 将数字转为对应的ASCII字节,拼接到结果头部
        b_result = bytes([ord('0') + digit]) + b_result
        temp = temp // 10

print(b_result)  # 输出: b'123'

扩展支持负数:

如果需要处理负数,只需在结果前添加负号对应的字节b'-':

x = -123
b_result = b''
temp = abs(x)

if temp == 0:
    b_result = b'0'
else:
    while temp > 0:
        digit = temp % 10
        b_result = bytes([ord('0') + digit]) + b_result
        temp = temp // 10

if x < 0:
    b_result = b'-' + b_result

print(b_result)  # 输出: b'-123'

说明

这种方式完全基于数字运算和字节操作,全程不会创建任何中间字符串对象,直接生成目标bytes对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:12:13