我写了以下代码:
std::bitset<4> bitvec; //bitset 0000
std::bitset<4> addition; //bitset 0000
addition.set(0); //setting the least significant bit
std::cout << addition << std::endl; //output 0001
std::cout << std::endl;
for(int x = 0; x != 16; ++x) { //addition loop
std::cout << bitvec << std::endl; //output
bitvec &= addition; //binary AND
}
std::cout << std::endl;
我预期的输出结果应该是:
0000
0001
0010
0011
0100
0101
....
但是这个循环只输出了'0000'。我缺失了什么基本概念?
bitvec
开始时为零,无论你与它进行“与”操作,你都会得到零。你期望得到什么? - CB Bailey