通过使用位运算和合适的掩码,我们可以实现在一个整数变量中存储和操作多个开关状态。这在设计状态机、控制标志等场景中非常有用。
#include <iostream>
const unsigned int FLAG_A = 1 << 0;
const unsigned int FLAG_B = 1 << 1;
const unsigned int FLAG_C = 1 << 2;
int main() {
unsigned int state = 0;
state |= FLAG_A;
if (state & FLAG_A) {
std::cout << "开关A已打开" << std::endl;
} else {
std::cout << "开关A已关闭" << std::endl;
}
state |= FLAG_B;
if (state & FLAG_B) {
std::cout << "开关B已打开" << std::endl;
} else {
std::cout << "开关B已关闭" << std::endl;
}
state &= ~FLAG_A;
if (state & FLAG_A) {
std::cout << "开关A已打开" << std::endl;
} else {
std::cout << "开关A已关闭" << std::endl;
}
return 0;
}