【发布时间】:2020-12-20 02:54:18
【问题描述】:
如果我运行以下代码:
Uint8List bytes = Uint8List.fromList([1, 0, 0, 128]);
ByteBuffer byteBuffer = bytes.buffer;
Uint16List sixteenBitList = byteBuffer.asUint16List();
print(sixteenBitList);
我得到以下结果:
[1, 32768]
因为原来的值是
00000001 00000000 00000000 10000000
1 0 0 128
我原以为它们会像这样组合:
0000000100000000 0000000010000000
256 128
相反,我得到了这个:
0000000000000001 1000000000000000
1 32768
那是小端,对吧?我在我的 Mac 上运行这段代码。我得到上述结果的原因是因为我的 Mac 使用了小端序吗?如果我在大端计算机上运行相同的代码,它会给出不同的结果吗? (我在 DartPad 上得到了相同的结果,但我不知道 DartPad 在什么机器上运行。)
【问题讨论】:
标签: dart endianness