C# 按位和&;之间有什么区别;逻辑与逻辑&&;

C# 按位和&;之间有什么区别;逻辑与逻辑&&;,c#,programming-languages,C#,Programming Languages,可能重复: 按位AND和逻辑AND和AND之间的区别是什么?&使用按位操作修改整数,即1000&1001=1000,&比较布尔值。但是,&兼作非短路逻辑and,这意味着如果您有false&true,第二个参数仍将被计算。&&按位操作不会出现这种情况,顾名思义,它是位级别的AND操作 因此,如果对两个整数执行按位AND运算: int a = 7; // b00000111 int b = 3; // b00000011 int c = a & b; // b0000001

可能重复:


按位AND和逻辑AND和AND之间的区别是什么?

&
使用按位操作修改整数,即
1000&1001=1000
&
比较布尔值。但是,
&
兼作非短路逻辑and,这意味着如果您有
false&true
,第二个参数仍将被计算。
&&
按位操作不会出现这种情况,顾名思义,它是位级别的AND操作

因此,如果对两个整数执行按位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将使用两个布尔运算符来检查它们的正确性(作为一个整体)并做出决定(注意C#中的布尔值有2个字节长)。

您是否想过在任何地方查找此值?不,奥利,没有任何资源。按位和逻辑运算只存在几天,你知道吗?@Femaref,我忍不住笑了……幽默感很强在某些情况下,讽刺是唯一有效的解决办法。