Search code examples
language-agnosticprocessor

How can I discover whether my CPU is 32 or 64 bits?


How do I find out if my processor is 32 bit or 64 bit (in your language of choice)? I want to know this for both Intel and AMD processors.


Solution

  • Windows, C/C++:

    #include <windows.h>
    
    SYSTEM_INFO sysInfo, *lpInfo;
    lpInfo = &sysInfo;
    ::GetSystemInfo(lpInfo);
    switch (lpInfo->wProcessorArchitecture) {
    case PROCESSOR_ARCHITECTURE_AMD64:
    case PROCESSOR_ARCHITECTURE_IA64:
        // 64 bit
        break;
    case PROCESSOR_ARCHITECTURE_INTEL:
        // 32 bit
        break;
    case PROCESSOR_ARCHITECTURE_UNKNOWN:
    default:
        // something else
        break;
    }