Python中如何将十六进制字符串转换为十六进制整数类型?
从文本读取十六进制字符串并获取整数类型变量的解决方案
在Python中,不存在“既是十六进制形式又是整数类型”的变量——直接写0xfff本质是用十六进制字面量表示的整数,它和十进制的4095是同一个整数,只是写法不同,内存存储完全一致。
你的需求可以实现,只需要去掉多余的hex()转换步骤即可:
正确代码示例
# 读取文本文件中的十六进制字符串 with open("Msg.txt", "r") as Read_msg: hex_str = Read_msg.readline().strip() # 去除字符串中的换行、空白字符 # 将十六进制字符串转换为整数类型 hex_int = int(hex_str, 16) # 验证类型和值 print(type(hex_int)) # 输出: <class 'int'> print(hex_int) # 默认输出十进制值:4095 print(hex(hex_int)) # 若需要十六进制格式的字符串输出,可调用hex()
为什么之前的转换会失败?
你之前调用hex(Hex)会把转换好的整数重新转回十六进制格式的字符串,这一步是多余的,导致变量类型回到字符串。只需要保留int(hex_str, 16)这一步,得到的就是符合要求的整数变量,和直接定义Hex = 0xfff完全等价。
内容的提问来源于stack exchange,提问作者Thuse
相关产品推荐
相关产品推荐

