Мой вопрос очень прост и тривиальен, но я не нашел явного ответа.Где младший байт в массиве C
если есть массив С char a[2]
, где младший байт a[0]
или a[1]
другими словами, нижний адрес или выше адрес?
Мой вопрос очень прост и тривиальен, но я не нашел явного ответа.Где младший байт в массиве C
если есть массив С char a[2]
, где младший байт a[0]
или a[1]
другими словами, нижний адрес или выше адрес?
Это зависит от использования, так что в основном вы его определяете.
Например, если вы используете char a[2]
, чтобы содержать 2-битное двоичное число (один из 00, 01, 10, 11), вы можете определить, что ваш бит LSB находится с правой стороны, то есть на a[1]
, поэтому номер 01 будет представлен строкой «01» (a[0]
= 0, a[1]
= 1). Во многих случаях этот выбор кажется естественным.
Однако вы можете решить, что ваши потребности лучше подходят для противоположного определения, и вы определите, что бит LSB находится слева, и в этом случае число 01 будет представлено строкой «10», ,
Концепция «значимости» имеет смысл только тогда, когда речь идет о блоке (например, бит или байт), принимает участие в , представляющем значение, состоящее из более чем одного такого устройства. Как и в комментарии indiv, массив из 2 char
объектов не имеет неотъемлемого значения в качестве единственного значения. Если вы решите использовать его как таковой, вам решать, как вы интерпретируете два char
s и присваиваете им числовое значение как единицу.
http://en.wikipedia.org/wiki/Endianness – Nit
Это зависит от системы. См., Например, [здесь] (http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html) –
Это совсем не зависит от конца ... Он определен пользователем. – indiv