当位(而不是字节)的顺序至关重要时的字节序
Endianness when order of bits (rather than bytes) is crucial
所有关于字节序的问题和答案似乎都以字节顺序为中心,但假设我有一系列位,其中位的顺序很重要。假设我将它们作为字节数组保存到记忆棒文件中。我可能有一天在小端机器上使用记忆棒,下一天在大端机器上使用。
假设位序列如下
10000000 00000001
我在一台小端机器上,但我总是将字节保存为大端,所以我反转每个字节中的位,以便将它们保存在记忆棒上
00000001 10000000.
第二天,我在完全不同的机器上将它们读入 uint8_t 数组。我假设(有人可以证实这一点)他们最终会以
的形式出现在记忆中
{128,1} [little] or {1,128} [big].
所以,如果我在小端机器上,我应该再次反转每个字节中的位顺序以返回到原始位序列。谁能确认一下?
我不确定读取字节(位)的机器是否假定它们与机器本身处于相同的字节顺序。
Endianess 仅适用于 2 个字节或更大的整数(和浮点数)变量。它不适用于原始数据、uint8_t
(字节)变量或 uint8_t
.
的数组
所有关于字节序的问题和答案似乎都以字节顺序为中心,但假设我有一系列位,其中位的顺序很重要。假设我将它们作为字节数组保存到记忆棒文件中。我可能有一天在小端机器上使用记忆棒,下一天在大端机器上使用。
假设位序列如下
10000000 00000001
我在一台小端机器上,但我总是将字节保存为大端,所以我反转每个字节中的位,以便将它们保存在记忆棒上
00000001 10000000.
第二天,我在完全不同的机器上将它们读入 uint8_t 数组。我假设(有人可以证实这一点)他们最终会以
的形式出现在记忆中{128,1} [little] or {1,128} [big].
所以,如果我在小端机器上,我应该再次反转每个字节中的位顺序以返回到原始位序列。谁能确认一下?
我不确定读取字节(位)的机器是否假定它们与机器本身处于相同的字节顺序。
Endianess 仅适用于 2 个字节或更大的整数(和浮点数)变量。它不适用于原始数据、uint8_t
(字节)变量或 uint8_t
.