如何解决如何使用python3将十六进制转换为有符号整数
使用pyhton3打印结果的最简单方法是什么
- 我有一个十六进制字符串
s="FFFC"
- 在 python 中,如果使用此命令行:
print(int(s,16))
- 我期望的结果是 -4(采用签名格式)。但事实并非如此,它显示结果为 65,532 的 Unsigned 格式。
- 我怎样才能以最简单的方式转换它?
提前致谢。
解决方法
有几种方法,但您可以明确地进行数学计算(假设 s
的字符不超过 4 个,否则使用 s[-4:]
):
i = int(s,16)
if i >= 0x8000:
i -= 0x10000
,
您可以使用 bytes.fromhex
和 int.from_bytes
类方法。
s = bytes.fromhex('FFFC')
i = int.from_bytes(s,'big',signed=True)
print(i)
不言自明,唯一可能需要澄清的是 'big'
参数,但这仅意味着字节数组 s
的最高有效字节在前。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。