我试图使用逻辑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)