gpt4 book ai didi

c - 为什么我在二进制文件中找不到 int 值

转载 作者:IT王子 更新时间:2023-10-29 00:53:58 25 4
gpt4 key购买 nike

我在 64 位 linux 机器上编译了以下程序:

#include <stdio.h>

main()
{
int a = 12345;

if (a == 12346)
printf ("YES\n");

return;
}

如果我使用 hexdump 输出二进制文件,我可以找到 12346(十六进制的 303a),但找不到 12345 值 (0x3039)。这是为什么?

(little 或 big endian 在找到该值时应该没有区别)

最佳答案

对我来说,这是普通 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。

关于c - 为什么我在二进制文件中找不到 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com