当位(而不是字节)的顺序至关重要时的字节序

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.

的数组