ここで一体何が起こっているのだろうか?
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
. これはエンディアンの問題ですか?