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。0x400 表示为十进制(基数 10),即 1024。

顺便说一句,您可以使用 google 进行基本转换。搜索“十进制的0x400”,谷歌会给你答案。

于 2010-09-07T22:25:42.427 回答
3

0x00000400 是 400 base 16,即 1024 base 10。

于 2010-09-07T22:24:53.377 回答
3

十进制的 1024 = 十六进制的 400。

于 2010-09-07T22:25:27.230 回答
3

0x400是一个十六进制数(由0x前缀表示)。它是表示十进制数的另一种方式1024

于 2010-09-07T22:25:28.297 回答
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 回答
0

好吧,我还没有看到你的代码,但是 400h = 1024 十进制并且你指定整数'int value = VAL'编译器只是不显示任何通知/警告,它会为你进行转换

于 2010-09-07T22:26:59.073 回答