#include<stdio.h>int main(void)
{unsigned int num = ~0;if (num = 0xffffffff)printf("32");elseif (num = 0xffff)printf("16");elseprintf("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 000132位的系统下:
int i = 65536;
cout << i; // 输出65536;
int i = 65535;
cout << i; // 输出65535;