Python3: преобразование целочисленного значения (2 байта) в два отдельных байта в массиве байтов

У меня есть следующий код, который пытается преобразовать целочисленное значение в два отдельных байта в массиве байтов.

value = 13183
print("Initial value: ", value)
val_msb = (value >> 8) & 0xFF
val_lsb = value & 0xFF
print("Value MSB:", val_msb, "Value LSB:", val_lsb)

val_arr = bytearray(2);
val_arr[0] = val_msb
val_arr[1] = val_lsb
print("Byte array:", val_arr)

Получение следующего вывода, который не соответствует ожидаемому.

Initial value:  13183
Value MSB: 51 Value LSB: 127
Byte array: bytearray(b'3\x7f')

Я ожидаю, что он создаст окончательный массив байтов как Byte array: bytearray(b'x33\x7f')

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
0
91
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Символ «3» имеет код символа 51 (или 0x33). Итак, то, что вы видите там, 3, — это не числовое значение, а символ, в который оно переводится. Если вы сделаете свою последнюю команду

print(list(val_arr))

вы можете видеть, что значения верны.

Другие вопросы по теме