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

Python 3.8中如何将十进制数转为固定位数的二进制列表?

问题解决:十进制转8位二进制列表

你的代码报错是因为{0:8b}格式化后会用空格填充到8位长度,而不是0。比如'{0:8b}'.format(8)得到的是' 1000',里面的空格无法转成整数,所以触发ValueError。

修正方案1:用0填充格式化字符串

把格式化符号改成{0:08b},这样会自动用0填充到指定长度:

[int(x) for x in '{0:08b}'.format(8)]

运行后得到结果:[0, 0, 0, 0, 1, 0, 0, 0],完全符合需求。

更高效的位运算方案(适合纳秒级性能需求)

如果追求极致性能,位运算比字符串格式化更快。可以通过循环逐位提取二进制值:

def dec_to_8bit_list(n):
    return [(n >> i) & 1 for i in reversed(range(8))]

# 调用示例
dec_to_8bit_list(8)  # 输出 [0,0,0,0,1,0,0,0]

这个方法直接操作二进制位,避免了字符串转换的开销,速度更快,适合对性能要求极高的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:05:29