В шестнадцатеричном формате ваш номер 0x8000, который 0x80 и 0x00.
Чтобы получить младший байт от входа, используйте low=input & 0xff
, а чтобы получить старший байт, high=(input>>8) & 0xff
.
Получить входные данные от младшего и старшего байсов, например, так: input=low | (high<<8)
.
Убедитесь, что целочисленные типы, которые вы используете, достаточно велики для хранения этих чисел. В 16-битных системах unsigned int
/ short
или signed
/ unsigned long
должны быть достаточно большими.