0
我有兩個char 8位值,我需要合併構建一個短的16位值。如何在Python中使用位移建立一個短的char(s)?
在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)
我很確定它應該工作相同。 – mgilson
我總是這樣做,從來沒有問題。唯一要記住的是,python的整數不是固定長度的,所以一些「技巧」可能無法按預期工作。 – Bakuriu
它的工作原理是一樣的,但最終結果並不是簡短的,而是一個Python整數。例如如果'upper'值實際上大於255,那麼最終的結果實際上並不適合16位,Python不會抱怨。您可能想要確認添加'&0xffff'。 – Keith