Получение 16-битных целых чисел в Python - PullRequest
9 голосов
/ 17 мая 2009

Я читаю 16-разрядные целые числа с аппаратного обеспечения через последовательный порт.

Используя Python, как я могу получить правильные значения LSB и MSB и заставить Python понять, что это 16-разрядное целое число со знаком, с которым я играю, а не только два байта данных?

1 Ответ

21 голосов
/ 17 мая 2009

Попробуйте использовать модуль struct :

import struct
# read 2 bytes from hardware as a string
s = hardware.readbytes(2)
# h means signed short
# < means "little-endian, standard size (16 bit)"
# > means "big-endian, standard size (16 bit)"
value = struct.unpack("<h", s) # hardware returns little-endian
value = struct.unpack(">h", s) # hardware returns big-endian
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...