所以我很好奇,这里到底发生了什么?
static void SetUInt16 (byte [] bytes, int offset, ushort val)
{
bytes [offset] = (byte) ((val & 0x0ff00) >> 8);
bytes [offset + 1] = (byte) (val & 0x0ff);
}
基本上,这段代码中的想法是将一个 16 位 int 设置为特定位置的字节缓冲区,但问题是我正在尝试使用它来模拟它
using(var ms = new MemoryStream())
using(var w = new BinaryWriter(ms))
{
w.Write((ushort)1);
}
我期待阅读1
,但我得到了256
. 这是字节顺序问题吗?