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

十进制转二进制场景:如何将元素从末尾到开头存入空数组?

十进制转二进制:余数逆序存入数组的实现方法

你遇到的核心问题是:每次取余得到的是二进制的低位值,而最终需要的结果是高位到低位的顺序,调整余数存入数组的方式就能解决,下面给两种实用实现思路:

方法1:先收集余数再反转数组

先按计算顺序把所有余数(包括最后的商1)存入数组,最后通过反转数组得到正确的高位到低位顺序:

decimal_num = 65
binary_arr = []

# 循环计算余数,直到商小于等于1
while decimal_num > 1:
    remainder = decimal_num % 2
    binary_arr.append(remainder)
    decimal_num = decimal_num // 2
# 把最后剩下的商(1)加入数组
binary_arr.append(decimal_num)
# 反转数组,得到高位到低位的顺序
binary_arr = binary_arr[::-1]

print(binary_arr)  # 输出 [1, 0, 0, 0, 0, 0, 1]

方法2:直接将余数插入数组开头

每次计算出新的余数后,直接插入到数组的最前端,这样数组从始至终都是高位到低位的顺序,无需额外反转:

decimal_num = 65
binary_arr = []

while decimal_num > 0:
    remainder = decimal_num % 2
    # 插入到数组第一个位置
    binary_arr.insert(0, remainder)
    decimal_num = decimal_num // 2

print(binary_arr)  # 输出 [1, 0, 0, 0, 0, 0, 1]

补充说明

如果需要兼容输入为0的情况,只需在开头加个判断:若输入是0,直接返回[0]即可,避免循环不执行的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:15:36