hexdump 与实际文件内容

hexdump 与实际文件内容

当我这样做时,hexdump filename.txt我得到以下输出:

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

当我这样做时,<?= bin2hex(file_get_contents('filename.txt')); ?>我得到了这个:

5aacfb5a8dc0155dd0269124c9e81789

那么,为什么 PHP 建议的内容应该是 ,ac5a5afbc08d5d1526d02491e8c98917而 hexdump 建议的内容应该是5aacfb5a8dc0155dd0269124c9e81789? 是不是我没有正确解释 hexdump 的输出?

答案1

区别在于大端序与小端序

从 hexdump 输出的前四个字节开始: ac5a 5afb。现在切换字节顺序以获得:

5aac fb5a

将其与 PHP 输出进行比较:

5aac fb5a

他们很相配。

默认情况下,BSDhexdump根据机器的字节顺序显示输出。如果您不想这样,您可以指定-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

相关内容