小编Kev*_*val的帖子

C++逻辑AND运算符

我试图使用逻辑AND运算符,但我得到一些意外的行为.

#include <iostream>

using namespace std;

int main() {
  unsigned flags = 0;
  cout << "flags = " << flags << endl;
  for(int i=0; i<3; ++i) {
    flags &= (1 << i);
    cout << "Anding with " << (1 << i) << endl;
    cout << "flags = " << flags << endl;
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

实际产量:

flags = 0
Anding with 1
flags = 0
Anding with 2
flags = 0
Anding with 4
flags = 0
Run Code Online (Sandbox Code Playgroud)

预期产量:

flags …
Run Code Online (Sandbox Code Playgroud)

c++ operators bitwise-operators logical-operators

0
推荐指数
1
解决办法
988
查看次数