【发布时间】:2014-09-18 05:51:42
【问题描述】:
我正在尝试在 C 中将十六进制数字打印为十进制。
int main()
{
unsigned long hex = 0xb5389e0c721a;
printf("hex in dec: %lu", hex);
getch();
return 0;
}
据此,我的输出是 2651615770。但是,当我使用在线十六进制到十进制转换器和 Windows 计算器时,假定的输出应该是 199254774411802。我做错了什么?
【问题讨论】:
-
您使用的是 64 位还是 32 位系统?你的编译器是什么?
-
@JoachimPileborg:它将在 Windows 上运行(因为
getch()),所以它实际上是 32 位还是 64 位 Windows 并不重要;unsigned long的大小都是 4。