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