2013-10-10 31 views
0

我正在製作一個基本的服務器/客戶端程序,並且我正在用Python製作客戶端。我必須在發送消息之前格式化消息。第一個字段是消息長度。我可以計算消息長度,但是我需要將值存儲在byte數組的前兩個字節中。如果消息長度小於256,它應該只有一個字節。我怎麼能強制這個數字是2個字節,而不用在前面加一個0x00?如何在Python中將一個字節int更改爲兩個字節?

+0

'struct'模塊可能會有所幫助。 – GWW

回答

2

使用struct module。例如,要按網絡順序(big-endian)將整數打包爲無符號的雙字節值,您應該這樣做:

> my_value = 1234 
> packed_bytes = struct.pack('>H', my_value) 
> print packed_bytes 
'\x04\xd2' 
+0

謝謝!這將起作用 –

+0

如果my_value等於150字節的一個字節值,那麼即使技術上只佔用1個字節,我如何強制將它壓入packed_bytes的前兩個字節?我只需要能夠處理1個字節和2個字節的數字。 –

+0

@AlexJohnson:我不明白你的問題。如果'my_value'是150,那麼這個代碼的輸出將是''\ x00 \ x96'',即兩個字節的第一個字節爲0。 –