📚 转换原理说明
问题分析:
你写入了5个int值[1,1,1,1,1],但读取时得到了10个ushort值[256,0,256,0,256,0,256,0,256,0]。这是因为:
- 每个32位int被拆分成2个16位ushort读取
- 存在字节序转换问题
- 256 (0x0100) 表明原本的0x01字节被放在了高位
原始int: 1 (0x00000001)
内存布局: [01][00][00][00] (小端序)
按ushort读取:
- 第1个ushort: [00][01] → 256
- 第2个ushort: [00][00] → 0
字节序说明:
- ABCD (大端序): 高字节在前,低字节在后
- DCBA (小端序): 低字节在前,高字节在后
- BADC/CDAB: 字节对调的混合模式