2024-09-28 23:17:38 发布
网友
我有一个十六进制正数和负数数组。我想把它们转换成十进制值:
>>> int("f107",16) 61703 >>>
我如何使python看起来f107为2的补数?换句话说,我想要-3833而不是{}。我怎样才能做到呢?在
f107
-3833
这是一个非常简单的函数:
def twos_complement(n, w=32): if n & (1 << (w - 1)): n = n - (1 << w) return n
示例:
与Joran的回答不同,它支持任意比特宽度。在
struct.unpack(">h","f107".decode("hex"))
0xf107=编码到字节=>;"\xf1\x07"
0xf107
"\xf1\x07"
因为它是两个字节,所以我们简单地将其解压为>big-endian h有符号的short
>
h
这是一个非常简单的函数:
示例:
^{pr2}$与Joran的回答不同,它支持任意比特宽度。在
0xf107
=编码到字节=>;"\xf1\x07"
因为它是两个字节,所以我们简单地将其解压为
>
big-endianh
有符号的short相关问题 更多 >
编程相关推荐