程序员面试宝典:与或数值运算

时间:2022-06-24 15:04:50

下列代码的输出值是多少:

   1:  #include "stdafx.h"
   2:  #include <iostream>
   3:  using namespace std;
   4:   
   5:  int _tmain(int argc, _TCHAR* argv[])
   6:  {
   7:      int x=2,y,z;
   8:      x*=(y=z=5);cout<<x<<endl;
   9:      z=3;
  10:      x=(y=z);cout<<x<<endl;
  11:      x=(y==z);cout<<x<<endl;
  12:      x=(y&z);cout<<x<<endl;/*y&z的意思是说将y和z按位与运算,y的二进制数位是0011,z
  13:                            的二进制数为也是0011,所以y&z的结果任然是0011,也就还是3,
  14:                            所以x的值任然是3.*/
  15:      x=(y&&z);cout<<x<<endl;
  16:      y=4;
  17:      x=(y|z);cout<<x<<endl;/*y&z的意思是说将y和z按位或运算,y=4的二进制数位是0100,
  18:                            z的二进制数为也是0011,所以y&z的结果任然是0111,也就是7,
  19:                            所以x的值7.*/
  20:      x=(y||z);cout<<x<<endl;
  21:      return 0;
  22:  }

最终结果为:10  10  1  3  1  7