• python经典百题之八进制转十进制


    题目:八进制转换为十进制

    解题思路
    这题目要求将八进制数转换为十进制数。八进制数是以8为基数的数字系统,而十进制数是以10为基数的数字系统。

    1. 直接计算法:按照八进制数的定义,将每位上的数字乘以8的相应次幂,并相加得到十进制数。
    2. 使用Python内置函数:Python内置函数int()可以直接将八进制字符串转换为十进制整数。
    3. 手动计算法:从八进制的最低位开始,乘以相应的8的幂,然后求和得到十进制数。

    现在,让我们使用这三种方法来实现八进制转换为十进制。

    方法1: 直接计算法

    • 实现代码
    def octal_to_decimal_direct(octal_number):
        decimal_number = 0
        power = 0
        octal_number = int(octal_number)
        
        while octal_number != 0:
            last_digit = octal_number % 10
            decimal_number += last_digit * (8 ** power)
            power += 1
            octal_number //= 10
        
        return decimal_number
    
    
    # 调用方法1进行转换
    octal_number = "123"  # Example octal number
    result_method1 = octal_to_decimal_direct(octal_number)
    print("Method 1 - Decimal representation:", result_method1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 优点
      • 直观易懂,基于八进制的定义。
      • 不依赖特定的语言或库。
    • 缺点
      • 相对于内置函数,可能会显得更繁琐。

    方法2: 使用Python内置函数

    • 解题思路
      • 使用Python的内置函数int(),将八进制字符串转换为十进制整数。
    • 实现代码
    def octal_to_decimal_builtin(octal_number):
        return int(octal_number, 8)
    
    
    # 调用方法2进行转换
    octal_number = "123"  # Example octal number
    result_method2 = octal_to_decimal_builtin(octal_number)
    print("Method 2 - Decimal representation:", result_method2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 优点
      • 简单、快速,利用内置函数实现转换。
      • 适用于通用情况,不需要手动实现转换逻辑。
    • 缺点
      • 不利于理解转换的具体过程。

    方法3: 手动计算法

    • 解题思路
      • 从八进制的最低位开始,乘以8的相应次幂,然后求和得到十进制数。
    • 实现代码
    def octal_to_decimal_manual(octal_number):
        decimal_number = 0
        octal_number = str(octal_number)  # Convert to string to access individual digits
        
        for i in range(len(octal_number)):
            digit = int(octal_number[i])
            decimal_number += digit * (8 ** (len(octal_number) - i - 1))
        
        return decimal_number
    
    
    # 调用方法3进行转换
    octal_number = "123"  # Example octal number
    result_method3 = octal_to_decimal_manual(octal_number)
    print("Method 3 - Decimal representation:", result_method3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 优点
      • 易于理解,手动实现转换过程,适用于教学或理解算法。
      • 不依赖特定的语言或库。
    • 缺点
      • 相对于内置函数,可能会显得更繁琐。

    总结和推荐

    • 在这种特定问题中,方法2是最简单、高效的解决方案,通过使用Python内置函数实现转换。
    • 对于一般性问题或需要通用解决方案的情况,方法1和方法3是更好的选择,它们具有通用性和灵活性,适用于不同的进制转换问题。在这两者中,方法1更直观易懂,但方法3更适合教学或理解算法。方法3可能稍微繁琐一些,但可以更清晰地展示转换的过程。
  • 相关阅读:
    【算法自由之路】算法复杂度、对数器、基本排序、异或与位运算技巧
    2022年Q2全国网络零售发展指数同比增长3.3%
    ubuntu 20.04下查找pycharm-vscode-qtcreator安装路径-查快捷方式路径-pycharm要以root权限运行脚本
    Nginx Rewrite
    快速傅里叶变换
    抽象工厂模式【设计模式】
    视频剪辑SDK,实现高效的移动端视频编辑
    ICMP协议及其在编程中的应用
    KeyTool生成证书链及使用
    笙默考试管理系统-MyExamTest----codemirror(28)
  • 原文地址:https://blog.csdn.net/yechuanhui/article/details/133573848