Ear*_*rlz 2 algorithm binary boolean-logic bit-manipulation
我在使这段代码更简洁(最好是一个布尔表达式)时有点大脑屁
这是我的代码:
if (d.Unemployed)
{
if (type.Unemployed)
{
tmp.Unemployed = true;
}
else
{
tmp.Unemployed = false;
}
}
else
{
if (type.Unemployed)
{
tmp.Unemployed = false;
}
else
{
tmp.Unemployed = true;
}
}
Run Code Online (Sandbox Code Playgroud)
基本的一点是,如果任一type
或d
不失业,则tmp
应该设置为不失业.
MRA*_*RAB 13
怎么样:
tmp.Unemployed = type.Unemployed == d.Unemployed;
Run Code Online (Sandbox Code Playgroud)
如果我们按照代码构建真值表,我们得到
d | type | tmp
---+------+----
1 | 1 | 1
---+------+----
1 | 0 | 0
----+-----+----
0 | 1 | 0
----+-----+----
0 | 0 | 1
Run Code Online (Sandbox Code Playgroud)
上面相当于操作的否定xor
。
tmp = not (d xor type)
Run Code Online (Sandbox Code Playgroud)
如果语言没有运算符,xor
我们可以使用!=
on 布尔值。
tmp = ! (d != type);
// or
tmp = d == type;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1627 次 |
最近记录: |