Вопрос о Big Endian против Little Endian - PullRequest
0 голосов
/ 22 сентября 2018

Итак, я проводил онлайн-урок по сетевым технологиям в Стэндфорде и столкнулся с вопросом, ответы на который были даны после викторины с объяснением, но я до сих пор не понимаю его.

Проблема была в том, рассмотрим 16-битный 53 как 0x3500 (от десятичного до шестнадцатеричного).Было ли это шестнадцатеричное значение написано в Little Endian или Big Endian?Мой ответ был Big Endian, но правильный ответ был Little Endian.

В объяснении он заявил, что 53 было 3x16 + 5 , поэтому мы получили 0x35 .

Для меня 3 было представлением первого байта 128: 0 |64: 0 |32: 1 |16: 1

И 5 было представлением второго байта 8: 0 |4: 1 |2: 0 |1: 1

И поскольку первый байт был записан первым (от 3 до 5) и имел большее значение (наиболее значимое), разве это не должно рассматриваться как Big Endian вместо Little Endian?

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

1 Ответ

0 голосов
/ 27 марта 2019

53 в 16-разрядном бинарном виде - 0000000000110101

0x3500 в двоичном - 0011010100000000

, поскольку младший байт находится по самому низкому адресу, это младший порядок байтов.Недоразумение в том, что вы рассматриваете только половину байта (4 бита), а не полный байт (8 бит).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...