В вики "big-endian" относится к порядку хранения нескольких байтов.

И байт состоит из 8 битов, также важно отметить порядок этих битов.

Я сделал dd if=/dev/sda count=1 | xxd -b , и обнаружил, что байты хранятся в противоположном возрастающем направлении адреса:

01100011 (нижний адрес находится слева, в то время как этот байт является символом ascii'c '). Похоже, это битовый уровень "big-endian".

как объяснить это странное явление?

2 ответа2

4

Биты представлены только в заказе для отображения. Они не хранятся в каком-либо определенном порядке внутри компьютера. Исключение составляют случаи, когда биты индивидуально адресуются внутри процессора. Во всех этих случаях 0 относится к младшему значащему биту.

То, как xxd отображает биты, не имеет ничего общего с тем, как они хранятся.

3

xxd превращает каждый байт, который он читает, в {шестнадцатеричное, двоичное, восьмеричное} число и печатает его, а не представление того, как указанный байт был представлен в памяти или где-либо еще. Все схемы записи чисел, с которыми я знаком, являются порядковыми номерами, так что вот что вы получаете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .