繁体   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