我使用os.system来运行make命令
os.system('make -C mydir/project all')
我想知道make是否失败。系统文档指出返回代码的格式与wait()
Wait for completion of a child process, and return a tuple containing its pid
and exit status indication: a 16-bit number, whose low byte is the signal number
that killed the process, and whose high byte is the exit status (if the signal
number is zero); the high bit of the low byte is set if a core file was produced.
所以如果make(或另一个应用程序)返回-1,我必须将0xFFxx(我真的不关心被调用的pid)转换为-1。右移后,我得到0xFF,但我无法将其转换为-1,它总是打印255.
那么,在python中,如何将255转换为-1,或者如何告诉解释器我的255实际上是8位有符号整数?
答案 0 :(得分:7)
if number > 127:
number -= 256
答案 1 :(得分:3)
尽管Ignacio的答案对于这种情况可能更好,但是用于从特殊格式的数据中解包字节的一个很好的通用工具是struct
:
>>> val = (255 << 8) + 13
>>> struct.unpack('bb', struct.pack('H', val))
(13, -1)