如何在十六进制编辑器中查找变量



我的目标是能够从外部更改校准变量的值(使用十六进制编辑器(。我已经使用Arduino IDE来开发我的代码。

定义为浮点的变量称为校正器,在setup((之前定义为全局变量:float corrector;

在setup((中,我首先定义它的值:corrector = 1.0f;

然后,我打印变量所在的十六进制地址:Serial.print("tAddress: "); Serial.println((unsigned int)(&corrector), HEX);

我得到的地址是309,当我在十六进制编辑器中查看这个地址时,我发现是一个30,这意味着一个0(错误的,因为我给了变量1的值(。

如果有人能告诉我我做得好不好,我将不胜感激。

谢谢。

一个浮点值"1.0f";表示为四个字节3f800000(如果您的平台是小端序,则可能按相反的顺序(。由于这是一个没有初始化器的全局变量,因此其地址很可能是运行时地址,而不是二进制文件中的地址。

如果你这样更改定义:

float corrector = 1.0f;

您应该能够在符号表中corrector符号所在的位置找到二进制文件中的这些字节。

最新更新