在python中将最高的16位字节转换为有符号int

2024-03-29 08:15:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用操作系统运行make命令

os.system('make -C mydir/project all')

我想看看make是否失败。系统文档声明返回代码的格式与wait()相同

^{pr2}$

因此,如果make(或另一个应用程序)返回-1,我必须将0xFFxx(我不关心被调用的pid)转换为-1。在右移之后,我得到0xFF,但是我不能让它把它转换成-1,它总是打印255。在

那么,在python中,如何将255转换为-1,或者如何告诉解释器我的255实际上是一个8位有符号整数?在


Tags: 代码文档命令project应用程序声明makeos
2条回答
if number > 127:
  number -= 256

虽然Ignacio的答案可能对这种情况更好,但是从特殊格式的数据中解包字节的一个好的通用工具是^{}

>>> val = (255 << 8) + 13
>>> struct.unpack('bb', struct.pack('H', val))
(13, -1)

相关问题 更多 >