我在C ++工作,我有一个 #define VAL 0x00000400. 。当我设置一个等于定义的变量时:int value = val;当我通过调试器运行时,显示变量值= 1024。有人可以解释如何变成1024吗?也许有一些指向内存地址信息,#Define信息或相关内容的链接。

有帮助吗?

解决方案

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

其他提示

“ 0x400”是 十六进制, ,或底座16。0x400表示为十进制(基数10),为1024。

顺便说一句,您可以使用Google进行基础转换。搜索 “十进制为0x400” Google会给您答案。

0x00000400 IS 400碱基16,是1024基座10。

1024在十进制中= 400。

0x400 是十六进制的数字(由 0x 前缀。)这是表示小数号的另一种方式 1024.

此外,从0x400(基数16)转换为基础10是:

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

好吧,我还没有看过您的代码,但是400h = 1024小数点,您指定整数'int value = val'编译器只是没有显示任何通知/警告,它为您提供了铸件

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top