我有两个char 8位值需要组合才能构建一个短的16位值。
在C ++中,我会这样做:
unsigned char lower = <someValue>;
unsigned char upper = <anotherValue>;
unsigned short combined = lower + (upper << 8);
我如何在Python v2.6.2中做同样的事情?
看起来它在Python中会是一样的,但我想确保没有一些细微的差别:
lower = <someValue>
upper = <anotherValue>
combined = lower + (upper << 8)
答案 0 :(得分:1)
可能有点矫枉过正,但如果你真的想要避免任何隐藏的差异,我建议使用 ctypes 回到C:
lower = ctypes.cschar(<somevalue>)
upper = ctypes.cschar(<anothervalue>)
combined = ctypes.csshort( lower + (upper << 8) )
这样做,你可以拥有硬变量的变量,这将使调试变得更容易。
注意:我不确定是否&lt;&lt;运算符仍然适用于ctypes(没有理由不)。