有没有比 int( byte_buffer.encode('hex'), 16 ) 更好的方法
在Python中,我经常使用以下序列从字节缓冲区中获取整数值(在Python中这是一个str)。
我从 struct.unpack() 例程获取缓冲区。 当我使用解压“char”时
byte_buffer, = struct.unpack('c', raw_buffer)
int_value = int( byte_buffer.encode('hex'), 16 )
有更好的方法吗?
In Python, I'm constantly using the following sequence to get an integer value from a byte buffer (in python this is a str).
I'm getting the buffer from the struct.unpack() routine. When I unpack a 'char' using
byte_buffer, = struct.unpack('c', raw_buffer)
int_value = int( byte_buffer.encode('hex'), 16 )
Is there a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
struct 模块擅长解压二进制数据。
The struct module is good at unpacking binary data.
执行此操作的最佳方法是实例化一个结构解包器。
请注意,如果您想要无符号字节,可以将“b”更改为“B”。 此外,不需要字节序格式。
对于任何其他想了解无界整数方法的人,请创建一个问题,并在评论中告诉我。
The best way to do this then is to instantiate a struct unpacker.
Note that you can change "b" to "B" if you want an unsigned byte. Also, endian format is not needed.
For anyone else who wants to know a method for unbounded integers, create a question, and tell me in the comments.
如果我们正在谈论获取字节的整数值,那么您需要这样:
无法理解为什么还没有建议。
If we're talking about getting the integer value of a byte, then you want this:
Can't understand why it isn't already suggested.