0

我从 Python 开始,但我真的是基于 C/C++ 的,所以对我的想法有点不同。我正在使用嵌入的东西,我需要使用字节。例如,我的 C 代码中有我的 typedef:u8、s8(无符号字符、有符号字符)和类似的 u16、s16。但是我如何在 Python 中使用这个想法。例如,我需要获取项目的总和,0xF0 + 0xAA而我想要0x9A0x19A存在为此的某些模块?

4

3 回答 3

5

我不认为,有一个直接的方法可以做到这一点。如果你想要 8 位算术,只需&255

print hex((0xF0 + 0xAA) & 255)

输出

0x9A

注意:正如评论中提到的 chepner,hex只需要以十六进制表示结果。它与算术无关。

于 2013-10-26T12:42:33.583 回答
4

也许你可以使用 ctypes。

>>> import ctypes
>>> _ = lambda i: int(ctypes.c_uint32(i).value)
>>> hex(_(0xF0 + 0xAA))
'0x19a'
于 2013-10-26T13:34:09.717 回答
0

考虑为此使用NumPy :

>>> import numpy
>>> a = numpy.array(range(200, 210), dtype=numpy.uint8)
>>> a
array([200, 201, 202, 203, 204, 205, 206, 207, 208, 209], dtype=uint8)
>>> a + a
array([144, 146, 148, 150, 152, 154, 156, 158, 160, 162], dtype=uint8)
于 2013-10-26T14:09:15.830 回答