6

私はC++で作業しており、#define VAL 0x00000400. 定義に等しい変数を設定すると: int value = VAL; デバッガーを実行すると、変数値 = 1024 が表示されます。それがどのように 1024 になるか説明してもらえますか? おそらく、メモリアドレス情報、#define 情報、または関連する何かへのリンクです。

4

7 に答える 7

11

0x00000400 は 1024 の底 16 です。デバッガーは底 10 の整数値を表示しています。

于 2010-09-07T22:24:27.860 に答える
8

"0x400" は16 進数、または基数 16 です。10 進数 (基数 10) で表される 0x400 は 1024 です。

ところで、Google を使用して基数変換を行うことができます。「10 進数で 0x400」を検索すると、Google で答えが表示されます。

于 2010-09-07T22:25:42.427 に答える
3

さらに、0x400(基数16)から基数10への変換は次のとおりです。

4*16^2 + 0*16^1 + 0*16^0
4*16^2 + 0 + 0
4*256
1024
于 2010-09-08T01:22:02.217 に答える
3

0x00000400 は 400 ベース 16 で、これは 1024 ベース 10 です。

于 2010-09-07T22:24:53.377 に答える
3

10 進数で 1024 = 16 進数で 400。

于 2010-09-07T22:25:27.230 に答える
3

0x400は 16 進数です (0xプレフィックスで示されます)。これは、10 進数を表す別の方法です1024

于 2010-09-07T22:25:28.297 に答える
0

まあ、私はあなたのコードを見たことはありませんが、400h = 1024 10進数で、整数 ' int value = VAL ' を指定すると、コンパイラは通知/警告を表示せず、キャストを行います

于 2010-09-07T22:26:59.073 に答える