猿问

在Python中从十进制转换为十六进制

我有一个简单的任务,我要求用户输入16位十六进制数字,但是如果用户输入一个十进制数字,我想将其转换为十进制数字。如果不是16位十六进制,我编写了代码以重新询问输入,但是我想添加从十进制到十六进制的转换,然后验证它是16位十六进制数字。

我想我只需要在正确的方向进行转换即可。


潇湘沐
浏览 378回答 2
2回答

饮歌长啸

您可以只使用hex()内置的:In [23]: hex(187)Out[23]: '0xbb'In [24]: hex(123456789)Out[24]: '0x75bcd15'In [25]: len(hex(123456789)[2:])Out[25]: 7In [26]: len(hex(123456789)) - 2Out[26]: 7它会返回一个以开头的字符串0x,因此您需要将前两个字符切掉,或者检查其长度为16 + 2。另外,如果您的用户输入的内容还不是整数,则需要对其进行转换。这是我写整个事情的方法:def your_function(dec, length=16):    try:        # Converts the string into an integer        # If dec is already an integer, it won't throw any errors        n = int(dec)        return len(hex(n)[:2]) == length    except ValueError:        # int(dec) raised the error. It's not a number.        return False

湖上湖

使用hex()内置的:def check_hex_length(decimal_number):  hex_number = hex(decimal_number) # hex_number now contains your number as hex.  return (len(hex_number) - 2) == 16
随时随地看视频慕课网APP

相关分类

Python
我要回答