這篇文章講十進位制的邏輯運算,這個簡單,就是與、或、非。
為什麼要講這個,因為計算機的本質就是這些二進位制的邏輯運算。計算機之所以用二進位制,是因為受硬體條件的制約。但是即便是這麼簡單的0和
1,照樣能實現強大的功能,什麼阿法狗打敗西洋棋大師,人臉識別,人工智慧等等,無**能如何炫酷,到計算機底層還是0和
1的邏輯運算實現的。
只要有乙個
1,運算結果就是
1 。在彙編中用
or 表示,在
c語言中用
「|」表示。
看上圖,學過物理的應該很容易理解這個電路圖,無論開關1,開關
2,任何乙個閉合,燈泡就會亮,當然兩個都閉合那也肯定亮。
只有兩個都為1時,運算結果才為
1,其他情況結果都為
0。在彙編中用
and表示,在
c語言中用「
&」表示。
看上面的電路圖,只有開關1和開關
2都閉合,燈泡才會亮,其他情況燈都不亮。
只有兩個數不同時,運算結果才為
1,其他情況都為零。在彙編中用
xor表示,在
c語言中用
「^」表示。
看上面的電路圖,只有開關1和開關
4同時閉合、開關
2和開關
3同時閉合時,燈才會亮,如果只是同一邊的開關閉合,那麼燈是不會亮的。
異或運算在加密演算法中常用。看上面的例子,在豎式中,第二個數是秘鑰,把第一次運算的結果再和秘鑰進行異或運算,得到的結果是原來的數。
取反,是
1則變成0,是
0則變成
1。在彙編中用not表示 ,在
c語言中用「
!」表示。
寫於2020.3.7 21:
21
為什麼計算機用二進位制 (計算機基礎課八
這周布林邏輯和邏輯門內容,很重要,請細細品味。今天我們開始 抽象 的旅程,不用管底層細節,把精力用來構建更複雜的系統。上一節,我們談了計算機最早是機電裝置,一般用十進位制計數,比如用齒輪數來代表十進位制,再到電晶體計算機。原因一 幸運的是,只用 開 關 兩種狀態也可以代表資訊,這叫二進位制。意思是 ...
計算機中二進位制的移位運算
高位左移後溢位,捨棄 如 例如 左移1位 有符號右移 右移是將乙個二進位制運算元物件按指定的移動位數向右移,右邊溢位的位數被丟棄,正數時左邊的空位用0補充,負數時則左邊的空位用1補充。右移相當於除以2的冪次。將乙個運算物件的各二進位制位全部右移若干位,正數左補0,負數左補1.例如 又移1位 高位左移...
計算機如何識別二進位制的
這個問題可能是很多人的困擾,實際上計算機是不認識0和1 的,這只是人們方便這麼說的,說是計算機只認識0和1。實際上計算機只能識別高低電平。什麼是高低電平?舉個例子,比如說乙個二極體,你加正電後就輸出高電平 只是乙個比方,具體可以看看數字電子的各種閘電路 所以說確切的說計算機只知道高低電平。程式和機器...