我从Python开始,但我真的是基于C / C ++,所以对我的思考有点不同。我正在使用嵌入的东西,我需要使用字节。例如,我在我的C代码中有我的typedef:u8,s8(unsigned char,signed char)和类似的u16,s16。但是我如何在Python中使用这个想法。例如,我需要得到项0xF0 + 0xAA
的总和,并且我想得到0x9A
而不是0x19A
存在一些模块吗?
答案 0 :(得分:5)
我不认为,有一种直接的方法可以做到这一点。如果你想要8位算术,只需要&
255
print hex((0xF0 + 0xAA) & 255)
<强>输出强>
0x9A
注意:作为评论中提到的chepner,只需要以十六进制表示结果hex
。它与算术无关。
答案 1 :(得分:3)
也许你可以使用ctypes。
>>> import ctypes
>>> _ = lambda i: int(ctypes.c_uint32(i).value)
>>> hex(_(0xF0 + 0xAA))
'0x19a'
答案 2 :(得分: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)