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

不使用int()函数如何将二进制字符串转换为十进制整数?

二进制字符串转十进制整数实现方案(不使用int()函数)

实现原理

二进制转十进制的核心规则:从左到右遍历二进制字符串的每一位,每遍历一位就将当前累计结果乘以2,再加上当前位的数值(0或1),本质是逐位累计二进制位的对应权重,全程不需要调用类型转换函数。

具体实现步骤

  • 可先做输入合法性校验:判断输入字符串的每个字符是否仅为'0'或'1',不符合则抛出异常
  • 初始化十进制结果变量为0
  • 遍历二进制字符串的每一个字符:
    • 将当前结果乘以2,相当于权重左移一位,匹配高位二进制的权值
    • 通过ord(当前字符) - ord('0')的方式把字符转为对应整数值,利用ASCII码连续编码的特性规避int()函数调用
    • 把转换得到的数值加到结果变量上
  • 遍历完成后直接返回最终结果即可

代码示例(Python)

def binary_to_decimal(bin_str: str) -> int:
    decimal = 0
    # 输入合法性校验
    for c in bin_str:
        if c not in ('0', '1'):
            raise ValueError("输入不是合法的二进制字符串")
    # 逐位计算十进制值
    for char in bin_str:
        decimal = decimal * 2 + (ord(char) - ord('0'))
    return decimal

# 测试用例
print(binary_to_decimal('1011')) # 输出11
print(binary_to_decimal('1111')) # 输出15
print(binary_to_decimal('100000')) # 输出32

实现说明

  • 整个实现全程没有调用int()函数,符合作业限制要求
  • 遍历逻辑的时间复杂度为O(n),n为二进制字符串的长度,运算效率高
  • 逻辑兼容任意长度的合法二进制字符串输入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:36:04