簡體   English   中英

struct.unpack() 和 int.from_bytes() 之間的區別?

[英]Difference between struct.unpack() and int.from_bytes()?

兩者有區別嗎? 我什么時候應該使用其中一種? 它們基本上做同樣的事情,除了 struct.unpack() 適用於多個字節序列。 如果我只需要轉換一個字節序列,我還應該使用 struct.unpack(),還是應該使用 int.from_bytes()? 我只是想知道。

好吧,對於初學者來說, int.from_bytes只會返回一個int對象,所以如果你想創建除int以外的任何東西,你就不能使用int.from_bytes

其次, struct.unpack只支持固定長度的數字 C 類型。 int.from_bytes支持任意大小的整數( int對象是):

>>> int.from_bytes(b'\xff'*8, 'little')
18446744073709551615
>>> int.from_bytes(b'\xff'*10, 'little')
1208925819614629174706175
>>> int.from_bytes(b'\xff'*100, 'little')
6668014432879854274079851790721257797144758322315908160396257811764037237817632071521432200871554290742929910593433240445888801654119365080363356052330830046095157579514014558463078285911814024728965016135886601981690748037476461291163877375

如果您只想要一個整數,我可能只會使用int.from_bytes struct模塊的一般用途是將 C 結構解析為 Python 對象。

暫無
暫無

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

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