Python,输入byte

时间:2013-10-26 12:38:24

标签: python types

我从Python开始,但我真的是基于C / C ++,所以对我的思考有点不同。我正在使用嵌入的东西,我需要使用字节。例如,我在我的C代码中有我的typedef:u8,s8(unsigned char,signed char)和类似的u16,s16。但是我如何在Python中使用这个想法。例如,我需要得到项0xF0 + 0xAA的总和,并且我想得到0x9A而不是0x19A存在一些模块吗?

3 个答案:

答案 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)