Я читаю в массиве байтов / список от сокета. Я хочу, чтобы Python рассматривал первый байт как "неподписанное целое число на 8 битов". Как возможно получить свое целочисленное значение как неподписанное целое число на 8 битов?
Используйте модуль struct .
import struct
value = struct.unpack('B', data[0])[0]
Обратите внимание, что unpack всегда возвращает кортеж, даже если вы распаковываете только один элемент.
Также посмотрите на этот вопрос SO .
байтов / байтовый массив - это последовательность целых чисел. Если вы просто обращаетесь к элементу по его индексу, у вас будет целое число:
>>> b'abc'
b'abc'
>>> _[0]
97
По самому своему определению байты и байтовые массивы содержат целые числа в диапазоне (0, 256)
. Итак, это «8-битные целые числа без знака».
Другой очень разумный и простой вариант, если вам просто нужно целочисленное значение первого байта, будет примерно следующим:
value = ord(data[0])
Если вы хотите распаковать все элементы полученных вами данных сразу (и это не просто однородный массив), или если вы имеете дело с многобайтовыми объектами, такими как 32-битные целые числа, вам нужно будет использовать что-то вроде модуля структуры.