数字 1101004800 与数字 20 是如何对应的?
Posted
技术标签:
【中文标题】数字 1101004800 与数字 20 是如何对应的?【英文标题】:How do the digits 1101004800 correspond with the number 20? 【发布时间】:2011-09-23 05:41:17 【问题描述】:我正在尝试学习如何使用 C++ 修改内存位置,并且在使用 MineSweeper 时,我注意到当内存中的时钟值为 1101004800 时,游戏进入了 20 秒。数字 1101529088 对应于游戏进入 21 秒。有人可以向我解释一下如何将这些 10 位长数字转换为 base-10 吗?
【问题讨论】:
1101529088 - 1101004800 = 524288 = 2^19。我不知道这意味着什么。 会不会是某个时代以来的蜱虫?只是猜测为 41A00000 似乎是一个奇怪的指针地址。 【参考方案1】:他们使用浮点数来表示计时器。这是一个将整数转换为浮点数的程序:
#include <stdio.h>
int main()
int n = 1101004800;
int n2 = 1101529088;
printf("%f\n", *((float*)&n));
printf("%f\n", *((float*)&n2));
return 0;
输出:
20.000000
21.000000
【讨论】:
【参考方案2】:1101004800
十进制是0x41A00000
十六进制,这是20.0
的IEEE-754表示。 1101529088
十进制是 0x41A80000
十六进制,这是 21.0
的 IEEE-754 表示。
【讨论】:
谢谢!将浮点数用于始终为整数的计数器是不是有点奇怪? 这确实有点奇怪,但可能有充分的理由。以上是关于数字 1101004800 与数字 20 是如何对应的?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pl/SQL 函数在 LOV 项中列出数字(例如从 1 到 20)?返回值与显示值相同