基于另一个布尔值否定布尔值

时间:2012-12-21 01:45:01

标签: c# bit-manipulation

在不编写b两次的情况下编写此C#代码的最后一行的简短,优雅,按位方式是什么:

bool getAsIs = ....
bool b = ....

getAsIs ? b : !b

3 个答案:

答案 0 :(得分:29)

真值表可以表示为:

getAsIs    b    getAsIs ? b : !b
--------------------------------
0          0    1
0          1    0
1          0    0
1          1    1

结果可表示为:

result = (getAsIs == b);

答案 1 :(得分:6)

尝试使用二进制XOR(^ Operator (C# Reference)):

bool getAsIs = true;
bool b = false;

bool result = !(getAsIs ^ b);

答案 2 :(得分:3)

我认为是

var foo = !(getAsIs ^ b)

简短,优雅,但绝对令人头疼!