当&在c#中将两个整数结合使用
本文关键字:两个 整数 结合 | 更新日期: 2023-09-27 18:11:02
我无法理解发生了什么以及这是如何从以下几行产生的:
示例1:我得到1作为下面的结果。
int a = 1, b = 9;
int r = a & b;
Console.WriteLine(r);
示例2:我得到8作为下面的结果。
int a = 10, b = 9;
int r = a & b;
Console.WriteLine(r);
我不知道&
和&
在这个语境中的意义。上述结果是如何被操纵的?逻辑是什么?
按位算术:
9 = 1001 9 = 1001
1 = 0001 10 = 1010
-------- ---------
& = 0001 = 1 & = 1000 = 8
其中&
跟随真值表(每比特):
& | 0 1
--+----
0 | 0 0
1 | 0 1
。"仅当两个输入都为1时输出1"
From & Operator (C# Reference)
对于整型,
&
计算其的逻辑位和操作数。
&
的真值表
& | 0 1
--+----
0 | 0 0
1 | 0 1
当你写1 & 9
时,结果将是1
,因为它的工作原理是;
0001
1001
x---------------
0001
当你写10 & 9
时,结果将是8
,因为它的工作原理是;
1010
1001
x---------------
1000
为位&
(AND)运算符。
按位和操作符改变位。它提供了重要的位逻辑的功能。当它应用于两个数时,结果是另一个包含1的数字,其中两个都是1数字也有1
也看到:和;操作符(c#参考)
For you case whereInt a = 1, b = 9;Int r = a &b;
a: 0001 (binary equvivalent of 1)
b: 1001 (binary equvivalent of 9)
----------
r: 0001 (which would be 1)
Here
是一个示例:
3: 0011
1: 0001
3 & 1: 0001
int r = a &b;//a = 1, b = 9
1的例子:
a: 0 0 0 1
b: 1 0 0 1
r: 0 0 0 1 // 1
2的例子:
a: 1 0 1 0
b: 1 0 0 1
r: 1 0 0 0 // 8
,(and算子)是指当a和b为1时,结果(r)仅为1。否则为0