hexdump против фактического содержимого файла

когда я делаю hexdump filename.txt Я получаю следующий вывод:

00000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
00000010 

когда я делаю <?= bin2hex(file_get_contents('filename.txt')); ?> Я понимаю:

5aacfb5a8dc0155dd0269124c9e81789

так почему hexdump предлагает содержимое должно быть ac5a5afbc08d5d1526d02491e8c98917 когда PHP предполагает, что они должны быть 5aacfb5a8dc0155dd0269124c9e81789? Я просто неправильно интерпретирую вывод hexdump?

11
задан neubert
08.02.2023 3:05 Количество просмотров материала 2626
Распечатать страницу

1 ответ

разница составляет обратный порядок байтов и прямой порядок байтов порядок.

начните с первых четырех байт вывода шестнадцатеричного дампа:ac5a 5afb. Теперь переключим порядок байтов на get:

5aac fb5a

сравните это с выводом PHP:

5aac fb5a

они совпадают.

по умолчанию, BSD hexdump выводит на основе байтов машины. Если вы этого не хотите, вы можете указать -C возможность получить вывод по байтам, а слово за словом:

$ hexdump filename.txt 
0000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
0000010
$ hexdump -C filename.txt 
00000000  5a ac fb 5a 8d c0 15 5d  d0 26 91 24 c9 e8 17 89  |Z..Z...].&.$....|
00000010
23
отвечен John1024 2023-02-09 10:53

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх