Преобразовать значение ushort в двухбайтовые значения в C #

Как разделить ushort на две байтовые переменные в C #?

Я попробовал следующее (package.FrameID это ushort):

Когда я пытаюсь рассчитать это с бумагой и карандашом, я получаю правильный результат. Кроме того, если FrameID больше байта (поэтому второй байт не равен нулю), это работает.

array[0] = (byte)(0x0000000011111111 & package.FrameID);
array[1] = (byte)(package.FrameID >> 8);

В моем случае package.FrameID равен 56, а результат в массиве [0] равен 16 вместо 56.

Как я могу это исправить?

Ответы на вопрос(2)

Ваш ответ на вопрос