我认为我可以像这样打印出一个 float
的内部十六进制:
const auto foo = 13.0F;
const auto bar = reinterpret_cast<const unsigned char*>(&foo);
printf("0x%02hhX%02hhX%02hhX%02hhX\n", bar[0], bar[1], bar[2], bar[3]);
这将输出:
0x00005041
但是当我查看调试器时,它报告的 foo
的十六进制值为:
0x003EF830
有人能帮我理解为什么这不起作用以及我需要做什么才能使其起作用吗?
foo
的 _address_,而不是foo
的值。请检查调试器输出。 - Netch