hexdump是否尊重其系统的字节序?


23

在我的机器上,运行这些命令时,将得到以下输出:

$ echo foos > myfile
$ hexdump myfile
6f66 736f 000a

hexdump的输出为小端。这是否意味着我的机器是低位优先的,还是hexdump始终使​​用低位优先的格式?

Answers:


33

传统的BSD hexdump实用程序使用平台的字节序,因此您看到的输出表示您的机器是低字节序的。

无论平台的字节顺序如何,都可以使用hexdump -C(或od -t x1)获得一致的逐字节输出。


5

从联机帮助页:

 -x      Two-byte hexadecimal display.  Display the input offset in hexa‐
         decimal, followed by eight, space separated, four column, zero-
         filled, two-byte quantities of input data, in hexadecimal, per
         line.

...

 If no format strings are specified, the default display is equivalent to
 specifying the -x option.

您的输出是little-endian(最低有效字节在前),这也是您可能正在使用的x86和x86_64体系结构的字节序。


3
是我一个人,还是手册页没有提到将“两字节数量”视为整数的任何地方?我想我正在疯狂的药丸...
slashingweapon

@slashingweapon“输入数据的两字节数量” uint16_t整数。
罗斯兰

“两个字节”与小端系统上的uint16_t不同。
slashingweapon '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.