找工作过程中遇到的一道笔试题,两种解法:

1.操作系统是16位还是32位是跟它的地址寻址方式相关的(需要CPU支持,但与CPU字长没有必然联系),因此可以直接通过指针(地址)的长度来判断:

cout << (sizeof(int *)==4 ? "32 bit" : "16 bit") << endl;

2.如果不允许用sizeof,则通过整数的表示范围来判断,16位系统中整数最大为65535:

unsigned int a = ~0;
cout << (a>65535 ? "32 bit" : "16 bit") << endl;

相关文章:

  • 2021-11-13
  • 2021-10-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-13
猜你喜欢
  • 2021-11-13
  • 2022-12-23
  • 2021-12-09
  • 2021-11-13
  • 2021-11-13
  • 2021-11-13
  • 2021-09-01
相关资源
相似解决方案