Mat*_*att 4 c linux hexdump elf
我在64位linux机器上编译了以下程序:
#include <stdio.h>
main()
{
int a = 12345;
if (a == 12346)
printf ("YES\n");
return;
}
Run Code Online (Sandbox Code Playgroud)
如果我使用hexdump输出二进制文件,我可以找到12346(十六进制为303a),但不能找到12345值(0x3039).这是为什么?
(小端或大端应该在找到该值时没有区别)
这是hexdump我在平原输出中的值; 看看粗体区域.
0000500 39fc 0030 8100 fc7d 303a 0000 0a75 a4bf
如果你期望看到3039一个群体,这将解释混乱.实际字节是:
fc 39 30 00 00 81 7d fc 3a 30 00 00 75 0a bf a4
如果您不希望hexdump执行其"有用"的默认输出,它将输入重新解释为一系列小端双字节字,您可以花一小时计算如何使用其格式字符串或只选择xxd而不是.
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |