无法打印存储在long long类型变量中的一些大值

时间:2015-06-26 17:43:04

标签: c++ 64-bit printf

我使用Visual Studio 2010 x64 Process

int main()
{
  long long EntryPoint = 0x13f501000;
  printf("Value %x", EntryPoint);
  system("pause");
}

结果值是3f501000还不是13f501000?

1 个答案:

答案 0 :(得分:0)

您可以使用%llx specifier with printf()

#include <stdio.h>

int main()
{
    const long long EntryPoint = 0x13f501000;
    printf("Value: 0x%llx", EntryPoint);
}

基本上,您可以将ll前缀(long long)与x类型说明符一起使用。

命令行:

C:\Temp\CppTests>cl /EHsc /W4 /nologo test.cpp
test.cpp

C:\Temp\CppTests>test.exe
Value: 0x13f501000

此外,由于此问题包含[c++]标记,因此您可以考虑将std::cout std::hex 一起使用:

#include <iostream>

int main()
{
    const long long EntryPoint = 0x13f501000;
    std::cout << "0x" << std::hex << EntryPoint << '\n';
}