#include<stdio.h>
int main(void)
{
unsigned int num = ~0;
if (num = 0xffffffff)
printf("32");
else
if (num = 0xffff)
printf("16");
else
printf("64");
getchar();
return 0;
}
以上是判断一个操作系统是多少位的代码。
附另一种解法:
16位的系统下:
int i = 65536;//i=0x10000,其中1溢出,所以只有0000
cout << i; // 输出0;
int i = 65535;//i=0xffff,因为它最高位是1,而i默认为signed类型,因此它是负数的补码,转化为实际数字时,应该减一然后高位(符号位)保持不变其他位取反
cout << i;//输出-1,即0x1000 0000 0000 0001
32位的系统下:
int i = 65536;
cout << i; // 输出65536;
int i = 65535;
cout << i; // 输出65535;