0

短い16ビット値を作成するために組み合わせる必要がある2つのchar8ビット値があります。

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)
4

1 に答える 1

1

少しやり過ぎかもしれませんが、隠れた違いを本当に避けたい場合は、ctypesを使用してCにフォールバックすることをお勧めします。

lower = ctypes.cschar(<somevalue>)
upper = ctypes.cschar(<anothervalue>)
combined = ctypes.csshort( lower + (upper << 8) )

そうすることで、変数をハードタイプ化できるという利点があり、将来のデバッグが容易になります。

注意:<<演算子がまだctypesで機能するかどうかはわかりません(そうしない理由はありません)。

于 2012-11-01T12:57:19.363 に答える