簡體   English   中英

Python解壓縮二進制數據,長度為12的數字

[英]Python unpack binary data, numeric of length 12

我有一個大字節序二進制文件。 有兩個數字字段。 第一個長度為8,第二個長度為12。如何解壓兩個數字?

我正在使用Python模塊struct( https://docs.python.org/2/library/struct.html ),它適用於第一個字段

num1 = struct.unpack('>Q',payload[0:8])

但我不知道如何解開第二個電話。 如果我將其視為char(12),則得到的內容類似於'\\x00\\xe3AC\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x01'

謝謝。

我認為您應該為長度為16的第二個數字創建一個新的字節字符串,在后12個字節中填充保存您的數字的字節字符串,並在前4個字符中填充零。

然后使用格式>QQ unpack解碼字節字符串,比方說numHInumLO變量。 然后,您得到的最終數字是: number = numHI * 2^64 + numLO *。 在Python中,整數可以(幾乎)任意大小,因此您不會遇到溢出問題。 那只是一個粗略的主意,如果您在用實際的Python代碼編寫代碼時遇到問題,請發表評論,然后我將編輯我的答案以提供更多幫助。

* ^在這種情況下是數學能力,因此請使用math.pow。 或者,您可以使用字節移位: number = numHI << 64 + numLO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM