C:按位不在某个位上

Mec*_*MK1 4 c bitwise-operators

我的问题很简单,但我找不到一个简单的解决方案:我有一个更大的整数或方程16,所以至少1000在二进制中.我希望使用按位NOT运算符翻转第三位.在这种情况下,它会1100.

有没有可以做到这一点的运营商?本~-运算符翻转所有位,据我所知,不只是一个特定的.

das*_*ght 10

与要翻转的位进行异或.

int c = 0x10; // 10000b
int m = 0x08; // 01000b
c ^= m;       // 11000b
Run Code Online (Sandbox Code Playgroud)