1. 程式人生 > >用程式判斷作業系統是16位還是32位(或64位)的?

用程式判斷作業系統是16位還是32位(或64位)的?

今天覆習了下C++,總結了這兩種方法用於判斷作業系統的位數,但第一種方法只能用於判斷是32位以上還是16位的,不能判斷是32位還是64位的,因為地址空間在32位和64位系統下都是一樣的。第二種方法可以判斷。

第一種方法:用sizeof()判斷

#include<iostream>

using namespace std;

int main()

{

char *p = NULL;

if(sizeof(p)==4)

cout<<"該作業系統是32位(或64位)的!"<<endl;

else

cout<<"該作業系統是16位的!"<<endl;

return 0;

}

第二種方法:判斷~0的大小

#include<iostream>

using namespace std;

int main()

{

int a = ~0;

if(a>65536)

cout<<"該作業系統是32位(或64位)的!"<<endl;

else

cout<<"該作業系統是16位的!"<<endl;

return 0;

}