当&与两个整数C#结合使用时的奇怪结果

Lea*_*ner 4 .net c#

我无法理解发生了什么以及如何从以下几行得出结果:

例1:我得到1作为下面的结果.

int a = 1, b = 9;
int r = a & b;
Console.WriteLine(r);
Run Code Online (Sandbox Code Playgroud)

例2:我得到8作为下面的结果.

int a = 10, b = 9;
int r = a & b;
Console.WriteLine(r);
Run Code Online (Sandbox Code Playgroud)

我不知道在这种情况下的意义&和重要性&.如何操纵上述结果?什么是逻辑?

Mar*_*ell 10

按位算术:

9 = 1001       9 = 1001
1 = 0001      10 = 1010
--------      ---------
& = 0001 = 1   & = 1000 = 8
Run Code Online (Sandbox Code Playgroud)

其中&是真值表(每位):

& | 0 1
--+----
0 | 0 0
1 | 0 1
Run Code Online (Sandbox Code Playgroud)

即"仅当两个输入均为1时才输出1"