How do I split a ushort into two byte variables in C#?
I tried the following (package.FrameID is ushort):
When I try to calculate this with paper&pencil I get the right result. Also, if FrameID is larger than a byte (so the second byte isn't zero), it works.
array[0] = (byte)(0x0000000011111111 & package.FrameID);
array[1] = (byte)(package.FrameID >> 8);
In my case package.FrameID is 56 and the result in array[0] is 16 instead of 56.
How can I fix this?
0x0f
is 1 byte, if we perform abit and
operation on it and theushort
, the return value is only the lower-nibble of the lower byte, I think it's0x00ff
. – Engraft