的配合使用,我無法理解發生了什麼,以及如何這個結果從下面幾行:奇怪的結果時,與在兩個整數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