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

Python十进制转二进制代码如何反转打印数位得到正确结果

问题说明

现有代码在做十进制转二进制计算时,循环取模2得到余数的顺序是二进制从最低位到最高位的顺序,直接逐位打印会得到逆序结果,无法输出正确的二进制值。另外原代码存在冗余导入、提示文案笔误、未处理0值输入、整数除法写法不严谨的小问题。

修正后代码
n = int(input())
print("conversion of {} to binary is :".format(n))

def conv(n):
    if n == 0:
        print(0)
        return
    bit_list = []
    while n != 0:
        remainder = n % 2
        bit_list.append(str(remainder))
        n = n // 2
    print(' '.join(reversed(bit_list)))

conv(n)
核心改动点
  • 移除未使用的math模块导入,修正提示文案笔误:原提示误写为“转十进制”,实际为转二进制
  • 取消边计算边打印的逻辑,将每一步得到的余数存入列表暂存
  • 计算完成后将列表倒序拼接,得到从高位到低位排列的正确二进制序列再输出,数位间保留空格和原输出格式一致
  • 补充输入值为0的边界场景处理,避免输入0时无输出
  • 用整数除法//替代原写法int(n/2),逻辑更直观,规避浮点数运算的潜在精度问题

如果要最小改动原代码逻辑,也可以直接用字符串逐位拼接余数,最后反转字符串输出,核心逻辑和存列表的实现完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:57:14