微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

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

我得到的地址是309,当我在十六进制编辑器中查看该地址时,发现的是30,表示0(错误,因为我给变量赋了值1)。

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

谢谢。

解决方法

浮点值“ 1.0f”表示为四个字节3f800000(如果您的平台是低端字节序,则可能是相反的顺序)由于这是没有初始化程序的全局变量,因此其地址很可能是 runtime 地址,而不是二进制文件中的地址。

如果您这样更改定义:

float corrector = 1.0f;

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。