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

不使用bin方法实现二进制转十进制及代码TypeError问题求助

错误根因
  1. 类型不匹配:binaryToDecimal接收的入参是decimalToBinary返回的字符串类型,直接对字符串做%、/这类数值运算属于非法操作,直接触发TypeError。
  2. 缩进错误:两个转换函数的return语句都写在了循环内部,第一次循环就会提前返回,仅处理1位就终止逻辑。
  3. 运算逻辑错误:2 **powers** (bits % 10)连续求幂的写法完全不符合二进制转十进制的计算规则,同时混用逐位遍历和逐位取余两套逻辑互相冲突。
  4. 测试代码错误:循环体未缩进、引用了未定义的decimal变量、print语句括号位置错误导致语法不合法。
修复后可运行完整代码
def decimalToBinary(num):
    # 处理输入为0的特殊情况
    if num == 0:
        return "0"
    bits = ""
    while num > 0:
        bits = str(num % 2) + bits
        num = num // 2
    return bits

def binaryToDecimal(bits):
    deciNum = 0
    # 直接遍历二进制字符串的每一位计算
    for bit in bits:
        deciNum = deciNum * 2 + int(bit)
    return deciNum

# 程序测试
for decimal in range(135, 146):
    binary_val = decimalToBinary(decimal)
    revert_decimal = binaryToDecimal(binary_val)
    print(f"{decimal} 的二进制为 {binary_val},转换回十进制结果为 {revert_decimal}")
功能说明

代码完全不依赖Python内置的bin、int(xxx, 2)这类进制转换内置能力,双向转换结果可直接验证正确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:57:00