如何在C / C ++中设置,清除和切换? 设置一下 使用按位OR运算符(|)设置一个位。 number |= 1UL << x; 这将设置一点x。 使用1ULLif number宽于unsigned long; 1UL << x直到评估1UL << x了未定义的行为偏移超过a的宽度之后才会发生促销long。这同样适用于所有其他示例。 清理一下 使用按位AND运算符(&)清除一下。 number &= ~(1UL << x); 那会很清楚x。必须使用按位NOT运算符(~)反转位串,然后运行AND。 切换了一下 XOR运算符(^)可用于切换位。 number ^= 1UL << x; 那将切换位x。 检查一下 你没有要求这个,但我不妨补充一下。 要检查一下,将数字x向右移动,然后按位移动它: bit = (number >> x) & 1U; 这会将bit的值x放入变量中bit。 将第n位更改为x 将该n位设置为1或者0可以通过以下2的补码C ++实现来实现: number ^= (-x ^ number) & (1UL