所有关于字节顺序的问题和答案似乎都集中在字节的顺序上,但假设我有一系列位,位的顺序是至关重要的。 假设我将它们作为字节数组保存到记忆棒文件中。 我可能一天在一个小端机上使用记忆棒,第二天在一个大端机上使用记忆棒。
假设位序列如下所示
10000000 00000001
我在一个小的endpoint机器上,但是我总是把字节保存为大endpoint,所以我把每个字节中的位反转,这样它们就保存在记忆棒上
00000001 10000000.
第二天,我在一台完全不同的机器上将它们读入uint8_t数组。 我假设(有人能证实这一点吗)他们会在记忆中
{128,1} [little] or {1,128} [big].
因此,如果我在一个小endpoint机器上,我应该再次颠倒每个字节内的位顺序,回到原始位序列。 有人能证实吗?
我不确定读取字节(位)的机器是否假定它们在机器本身的相同字节位序中。
Endianess仅适用于2字节或更大的整数(和浮点)变量。 它不适用于原始数据,UINT8_T
(字节)变量或UINT8_T
的数组。