Endianness, «Наиболее значимый» и «Наименее значимый» - PullRequest
6 голосов
/ 12 января 2012

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

У меня есть целочисленное значение: 12345

Если я преобразую его в шестнадцатеричное значение, используяWindows калькулятор, я получаю значение: 3039 (в основном двухбайтовое значение).Значение 3039, показывающее байты, представляющие целочисленное значение 12345, сохраненное как небольшое или старшее порядковое значение, и как мне определить это на основе значения?

1 Ответ

10 голосов
/ 12 января 2012

Endian-ness относится к тому, как числа хранятся в памяти.Это не имеет ничего общего с порядком вычисления байтов.Если адреса памяти увеличиваются слева направо на этой странице, то на машине с прямым порядком байтов ваш номер будет храниться

30 39

, а на машине с прямым порядком байтов

39 30

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

...