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个字节长)。