在像C ++这样的语言中,(a ^(1<< b))实际上做了什么?

时间:2015-11-19 03:06:04

标签: java c++ c bit-manipulation bitwise-operators

我正在看这个函数,

int func(int a, int b){
    return (a ^ (1 << b)); 
}

究竟发生了什么?据我所知,它基本上是说“XOR(2 ^ b)”,也就是说,是b的幂的xor 2。但除此之外,实际发生了什么,为什么?我想我正在寻找这个公式中的某种模式。

1 个答案:

答案 0 :(得分:5)

此特定表达式切换a的第b位。

这可能很有用,例如,如果您想将int视为布尔数组(或位掩码),并取消位置b处的条目。