Какой у меня порядок байтов? - PullRequest
0 голосов
/ 09 марта 2011

В инструкции пишут FF8055AAh.В программе я нахожу значение AA5580FF.Это не мало или не порядковый номер.Но что это?

Ответы [ 4 ]

3 голосов
/ 09 марта 2011

Это порядок с прямым порядком байтов (при условии, что значение в руководстве является big-engian).Это байты {FF, 80, 55, AA}, поэтому при их обратном преобразовании вы получаете {AA, 55, 80, FF}.

1 голос
/ 09 марта 2011

Если ваш процессор ориентирован на байты (как это делают большинство современных процессоров), это либо порядок байтов, либо порядок байтов. Обратите внимание, что байт состоит из двух шестнадцатеричных цифр.

0 голосов
/ 09 марта 2011

Я понял из вашего предыдущего вопроса , что вы хотите преобразовать эти шестнадцатеричные значения в представления с одинарной точностью. Используя онлайновый преобразователь шестнадцатеричной системы в числа с плавающей запятой , вот что я получаю:

  • FF8055AA становится -NaN
  • AA5580FF становится -1.8962955e-13

Итак, реальный вопрос в том, какое из этих чисел выглядит так, как вы ожидаете увидеть в вашем файле данных? Независимо от того, что из этого выглядит так, как вам нужно, обрабатывайте файл данных как имеющий порядок байтов, так что он дает вам это значение в результате, когда вы загружаете и конвертируете его.

0 голосов
/ 09 марта 2011

Вы можете проверить свой порядок байтов с помощью небольшой программы, как указано ниже:

http://c -faq.com / разное / endiantest.html

Из того, что вы опубликовали, ваша последовательность является противоположностью руководствам. Замена порядка байтов вводит в заблуждение, но каждое слово хранится с большим или меньшим порядком байтов, что приводит к замене на

От AABB CCDD до DDCC BBAA (16-разрядные слова).

...