这个地址(0x00000400)=1024是如何定义的 我在C++中工作,我有一个定义了VAL0x000 000 0400 。当我将一个变量设置为define:int value=VAL;当我运行调试器时,会显示变量值=1024。有人能解释一下这是怎么变成1024的吗?可能是指向内存地址信息、#定义信息或相关内容的链接

这个地址(0x00000400)=1024是如何定义的 我在C++中工作,我有一个定义了VAL0x000 000 0400 。当我将一个变量设置为define:int value=VAL;当我运行调试器时,会显示变量值=1024。有人能解释一下这是怎么变成1024的吗?可能是指向内存地址信息、#定义信息或相关内容的链接,c++,memory,c-preprocessor,memory-address,C++,Memory,C Preprocessor,Memory Address,0x00000400是1024的基数16。调试器正在向您显示以10为基数的整数值。

0x00000400是1024的基数16。调试器正在向您显示以10为基数的整数值。

<0x00000400是以400为基数的16,即1024为基数的10。

1024以十进制表示=400以十六进制表示。

0x400
是一个十六进制数(由
0x
前缀表示)。这是表示十进制数
1024
<0x400”是以16为基数的另一种方式。0x400表示为十进制(以10为基数),即1024


顺便说一句,你可以用谷歌做基本转换。搜索,谷歌会给你答案。

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

另外,从0x400(基数16)到基数10的转换是:

4*16^2 + 0*16^1 + 0*16^0
4*16^2 + 0 + 0
4*256
1024

-关于基数10和基数16之间的差别,我有一个非常基本的问题。哦,我无法想象人们在不知道任何关于十六进制的知识的情况下如何使用十六进制this@Steve-+1来抵消你不必要的否决票。所以,即使是基本的问题,也是一个问题的地方。@尤瓦尔:我希望看到比C++更专业的人。questions@Svisstack字体仅仅因为那是你想要的,并不意味着那就是你想要的。因此,它是编程问题的一站式解决方案,而不仅仅是那些被认为“难”或“有趣”的问题。此外,一个程序员的难或有趣的问题是另一个程序员的教程问题。总有比你更聪明的人。我是说,这会让你转变。。。隐式设置用于链接,而最上面的答案没有设置>_