C++ を使用してメモリの場所を変更する方法を学ぼうとしていますが、MineSweeper をいじっていると、メモリ内のクロックの値が 1101004800 のときに、ゲーム開始から 20 秒経過していることに気付きました。数字の 1101529088 は、ゲーム開始から 21 秒に対応します。これらの10桁の長い数字を基数10に変換する方法を誰かに説明してもらえますか?
2 に答える
8
フロートを使用してタイマーを表しています。整数を浮動小数点数に変換するプログラムは次のとおりです。
#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
于 2011-06-27T04:49:10.607 に答える
4
1101004800
10 進数は0x41A00000
16 進数で、 の IEEE-754 表現です20.0
。 1101529088
10 進数は0x41A80000
16 進数で、 の IEEE-754 表現です21.0
。
于 2011-06-27T04:47:04.140 に答える