bbb*_*bbb 18 python python-3.x
我正在读取socket中的字节数组/列表.我希望Python将第一个字节视为"无符号8位整数".如何将其整数值作为无符号8位整数?
cod*_*ape 21
使用struct模块.
import struct
value = struct.unpack('B', data[0])[0]
Run Code Online (Sandbox Code Playgroud)
请注意,即使您只打开一个项目,unpack也会返回一个元组.
另外,看看这个SO问题.
bytes/bytearray是一个整数序列.如果您只是通过索引访问元素,那么您将拥有一个整数:
>>> b'abc'
b'abc'
>>> _[0]
97
Run Code Online (Sandbox Code Playgroud)
按照它们的定义,字节和字节数组包含整数range(0, 256)
.所以它们是"无符号8位整数".
另一个非常合理和简单的选项,如果你只需要第一个字节的整数值,将类似于以下内容:
value = ord(data[0])
Run Code Online (Sandbox Code Playgroud)
如果你想一次解包所接收数据的所有元素(并且它们不仅仅是一个同构数组),或者如果你正在处理像32位整数这样的多字节对象,那么你需要使用像结构模块.
归档时间: |
|
查看次数: |
67301 次 |
最近记录: |