【发布时间】:2020-11-12 16:58:08
【问题描述】:
我有这个问题:
n = int(input("Enter Hexadecimal Number: ")
print(0xn)
我发现当 n 已经定义时它可以工作......
还有当数字是2ABF这样的字符串时如何转换它
【问题讨论】:
标签: python python-3.x hex
我有这个问题:
n = int(input("Enter Hexadecimal Number: ")
print(0xn)
我发现当 n 已经定义时它可以工作......
还有当数字是2ABF这样的字符串时如何转换它
【问题讨论】:
标签: python python-3.x hex
0b、0o 和 0x 修饰符仅适用于 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
【讨论】:
尝试如下:
n = input("Enter Hexadecimal Number: ")
print(hex(int('0x' + n, 16)))
【讨论】: