【问题标题】:Problem in executing code to convert hexadecimal to decimal执行代码将十六进制转换为十进制时出现问题
【发布时间】:2020-11-12 16:58:08
【问题描述】:

我有这个问题:

n = int(input("Enter Hexadecimal Number: ")
print(0xn)

我发现当 n 已经定义时它可以工作...... 还有当数字是2ABF这样的字符串时如何转换它

【问题讨论】:

    标签: python python-3.x hex


    【解决方案1】:

    0b0o0x 修饰符仅适用于 int literals,我的意思是,当您在代码中按字面意思编写整数时。您不能简单地将它们应用于已经有值的变量,因为整数不会以任何特定的基数存储(仅当您以某种方式显示它们时才重要)。


    将字符串转换为 int时,您可以指定它所在的基数作为第二个参数:

    n = int("AF", 16)
    # 175
    

    对于超过 16 个的碱基,它会继续使用字母表的其余部分,最多 36 个,之后它会拒绝继续,因为没有更多的字母,迫使你自己写。


    将 int 转换为字符串时,没有特定的万能方法。但是,特别是对于公共基础,有内置函数:

    bin(n)  # '0b10101111' - base 2
    oct(n)  # '0o257' - base 8
    hex(n)  # '0xaf' - base 16
    

    如果需要,您可以对这些字符进行通常的字符串操作,以去掉前两个字符并将十六进制全大写:

    print(hex(n)[2:].upper())
    # AF
    

    【讨论】:

      【解决方案2】:

      尝试如下:

      n = input("Enter Hexadecimal Number: ")
      print(hex(int('0x' + n, 16)))
      

      【讨论】:

        猜你喜欢
        • 2014-01-15
        • 2019-01-01
        • 2019-02-10
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        • 1970-01-01
        相关资源
        最近更新 更多