【发布时间】:2014-09-24 11:12:24
【问题描述】:
在我的项目中,我有一个特殊的处理器,它发送 12 个字节,在我的 PC 上,我有一个 python 脚本,它将这 12 个字节读入list。我将收到的一个这样的数据包粘贴到下面的列表中:
packet1 = [255, 253, 99, 0, 19, 207, 0, 31, 25, 255, 249, 21]
我必须将每三个元素(字节)组合起来,以产生有意义的值。所以,当我成功组合所有它们时,我应该有 4 个整数。
例如,当我组合列表255, 253, 99 的前三个值时,我应该得到-699。 没错,我需要它作为有符号整数。
我在 C 程序中这样做的方式是这样的:
uint8_t x = 255;
uint8_t y = 253;
uint8_t z = 99;
int convert(uint8_t x, uint8_t y, uint8_t z)
{
int result = (x << 24) + (y << 16) + (z << 8);
result = result >> 8;
return result;
}
通过将x、y 和z 左移8 并将它们全部右移8,并将结果捕获到一个整数数据格式变量中,我正在制作确保我得到一个签名值。
如何在 Python 中实现这个效果?
救命!
谢谢。
【问题讨论】:
标签: python python-2.7 char integer type-conversion