C数组中的最低有效字节在哪里

时间:2014-10-31 17:14:13

标签: c arrays endianness

我的问题非常简单而且微不足道,但我没有找到明确的答案。

如果有C数组char a[2],其中最不重要的字节a[0]a[1]

换句话说,低地址或更高地址?

2 个答案:

答案 0 :(得分:5)

“重要性”的概念仅在被谈论的单元(例如,比特或字节)参与表示由多于一个这样的单元组成的值时才有意义。正如在indiv的评论中一样,2个char对象的数组作为单个值没有固有的含义。如果你选择这样使用它,你可以自己解释两个char并将它们作为一个整数赋予它们。

答案 1 :(得分:2)

这取决于用法,所以基本上你定义它。

例如,如果使用char a[2]包含2位二进制数(00,01,10,11之一),则可以定义LSB位在右侧,即{ {1}},因此数字01将由字符串“01”表示(a[1] = 0,a[0] = 1)。在许多情况下,这种选择似乎很自然

但是,您可以通过相反的定义确定您的需求更适合,并且您将定义您的LSB位在左侧,在这种情况下,数字01将由字符串“10”表示。