Bitwise与&和LOGICAL AND && 之间有什么区别
可能重复:
在C#中逻辑和条件AND,OR有什么区别?
Bitwise AND&和Logical AND &&有什么区别?
多谢你们
&
使用按位运算修改整数,即。 1000 & 1001 = 1000
, &&
比较布尔值。 但是, &
兼作非短路逻辑,并且意味着如果您有false & true
,则仍将评估第二个参数。 &&
不会出现这种情况。
Bitwise,顾名思义,它是BIT级别的AND操作。
所以,如果你在两个整数上执行BITWISE AND:
int a = 7; // b00000111 int b = 3; // b00000011 int c = a & b; // b00000011 (bitwise and)
另一方面,在C#中,逻辑AND在逻辑(布尔)级别操作。 所以你需要布尔值作为运算符,结果是另一个逻辑值:
bool a = true; bool b = false; bool c = a && b; // c is false c = a && true; // c is true
但只是在逻辑层面。
好吧,好问题(虽然重复)。
按位AND将在位级上影响其运算符,即循环并对每个位执行逻辑AND运算。
另一方面,
逻辑AND将使用2个布尔运算符来检查它们的正确性(作为一个整体)并决定(注意C#中的bool是2个字节长)。