Преобразовать байт Python в «8-разрядное целое число без знака»




python-3.x (2)

bytes / bytearray - это последовательность целых чисел. Если вы просто получите доступ к элементу по его индексу, у вас будет целое число:

>>> b'abc'
b'abc'
>>> _[0]
97

По самому определению байты и байтовые массивы содержат целые числа в range(0, 256) . Так что они "8-битные целые числа без знака".

Я читаю в байтовом массиве / списке из сокета. Я хочу, чтобы Python рассматривал первый байт как «8-разрядное целое число без знака». Как можно получить его целочисленное значение как 8-разрядное целое число без знака?


Другой очень разумный и простой вариант, если вам просто нужно целочисленное значение первого байта, будет выглядеть примерно так:

value = ord(data[0])

Если вы хотите распаковать все элементы полученных данных одновременно (и они не являются просто однородным массивом), или если вы имеете дело с многобайтовыми объектами, такими как 32-разрядные целые числа, то вам нужно использовать что-то вроде структурный модуль.





python-3.x