我在这里看到了一些关于C#中&&和&运算符之间差异的问题,但我仍然对它的使用方式感到困惑,以及在不同情况下会产生什么结果.例如,我只是在项目中瞥见了以下代码
bMyBoolean = Convert.ToBoolean(nMyInt & 1);
bMyBoolean = Convert.ToBoolean(nMyInt & 2);
Run Code Online (Sandbox Code Playgroud)
当它结果为0并且> 0时?这个运营商背后的逻辑是什么?运营商'|'之间有什么区别?
bMyBoolean = Convert.ToBoolean(nMyInt | 1);
bMyBoolean = Convert.ToBoolean(nMyInt | 2);
Run Code Online (Sandbox Code Playgroud)
我们可以使用&&,|| 运算符并获得相同的结果(可能使用不同的代码)?
Sle*_*idi 11
这&&是一个条件和用于if语句和while
if(x>1 && y<3)
Run Code Online (Sandbox Code Playgroud)
这意味着x应大于1且y小于3,满足两个条件
if(x>1 || y<3)
Run Code Online (Sandbox Code Playgroud)
满足其中一个
但是,&和| 分别是按位AND和OR.例如:
1 | 0 => 1
1 & 0 => 0
1 & 1 => 1
Run Code Online (Sandbox Code Playgroud)
如果这适用于直整数,则将计算并应用它们的相应二进制值
2&1
=> 10 // the binary value of 2
&
01 // the binary value of 1
--
00 // the result is zero
Run Code Online (Sandbox Code Playgroud)