Converter um valor de ushort em dois valores de bytes em c #

Como faço para dividir um ushort em duas variáveis ​​de byte em c #?

Eu tentei o seguinte (package.FrameID é ushort):

Quando tento calcular isso com papel e lápis, obtenho o resultado certo. Além disso, se FrameID for maior que um byte (então o segundo byte não é zero), ele funciona.

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

No meu caso package.FrameID é 56 e o ​​resultado em array [0] é 16 em vez de 56.

Como posso consertar isso?

questionAnswers(2)

yourAnswerToTheQuestion