的配合使用,我无法理解发生了什么,以及如何这个结果从下面几行:奇怪的结果时,与在两个整数C#
例1:我得到作为结果的下方。
int a = 1, b = 9;
int r = a & b;
Console.WriteLine(r);
实施例2:我得到作为结果的下方。
int a = 10, b = 9;
int r = a & b;
Console.WriteLine(r);
我不知道&
的意义和&
在这方面的意义。上述结果如何被操纵?什么是逻辑?
的配合使用,我无法理解发生了什么,以及如何这个结果从下面几行:奇怪的结果时,与在两个整数C#
例1:我得到作为结果的下方。
int a = 1, b = 9;
int r = a & b;
Console.WriteLine(r);
实施例2:我得到作为结果的下方。
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”
谢谢Marc :)它帮助我很多 – Learner 2013-04-26 06:53:10
但我有一个问题。我们如何知道&这个真值表?另外什么是真理表或运营商?我认为它由||表示? – Learner 2013-04-26 06:54:27
@Divine按位“或”是'|',而不是'||'; “或者”是“如果其中一个或两个输入都是1,则输出1”,因此“{0,0} => 0”,“{1,0} => 1”,“{0,1} => 1” '{1,1} => 1'。关于“我们如何知道真值表” - 要么通过理解推理(即,只有在两个输入都是1的情况下的“输出1”)并且通过另一个叫做“学习它”的技巧来计算出来。海事组织“理解推理”方法更有用。例如,“xor”是“输出1,如果*正好*一个(即不是两个)输入都是1”等 – 2013-04-26 06:58:37
它是Bitwise &
(AND)运营商。
按位和运算符更改位。它为按位逻辑提供了重要的 功能。当它被应用到两个数字, 结果是包含1另一个号码,每个两件 数也有1
对于你的情况下 INT 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)
对于整型,
&
计算逻辑按位的 操作数。
真值表&
& | 0 1
--+----
0 | 0 0
1 | 0 1
当你写1 & 9
结果将是1
,因为它的工作原理等;
0001
1001
x---------------
0001
当你写10 & 9
结果将是8
,因为它的工作原理等;
1010
1001
x---------------
1000
Here
是一个示例:
3: 0011
1: 0001
3 & 1: 0001
INT R =一个& B; // A = 1,B = 9
第一示例:
a: 0 0 0 1
b: 1 0 0 1
r: 0 0 0 1 // 1
第二示例:
a: 1 0 1 0
b: 1 0 0 1
r: 1 0 0 0 // 8
&(AND-操作者)意味着,结果(r)是仅1当a和b是1.否则它是0.
谢谢,但一个是只有1和b不是1,你说“当和和b”应该是1,因为r是1.你如何计算a/b的二进制除法? – Learner 2013-04-26 06:50:03
我想知道你在这里试图做什么。你期望什么结果? – comecme 2013-04-26 06:54:57
哈哈我参加了一个在线考试,并且有一个问题,所以我在VS中试过了,我得到了结果,我不知道结果的逻辑是什么。这就是为什么我问这里:D – Learner 2013-04-26 06:55:53