如何在不使用C/C++循环的情况下切换n次?

unr*_*sed 1 c++ bit-manipulation

我想在没有循环的情况下切换n次.
切换3次后的1(位)将为0,依此类推.为了切换1次,我使用bit ^ = 1.我实际上搜索了一些操作公式来这样做.

Shl*_*oim 6

如果我理解正确,你想要切换一点N时间.

现在,切换bin N次等于切换N%2次,这样:

b ^= (N%2);
Run Code Online (Sandbox Code Playgroud)

模2是相同的,N&1所以你也可以写:

b ^= (N&1);
Run Code Online (Sandbox Code Playgroud)