不管是數字電路,還是C語言,我們都會經常遇到邏輯運算和邏輯電路,在這里我介紹一下,大家先簡單了解一下,知道有這么回事,回頭遇到了,再詳細研究。
首先,在“邏輯”這個概念范疇內,存在真和假這兩個邏輯值,而將其對應到數字電路或C語言中,就變成了“非0值”和“0值”這兩個值,即邏輯上的“假”就是數字電路或C語言中的“0”這個值,而邏輯“真”就是其它一切“非0值”。
然后,我們來具體分析一下幾個主要的邏輯運算符。我們假定有2個字節變量:A和B,二者進行某種邏輯運算后的結果為F。
以下邏輯運算符都是按照變量整體值進行運算的,通常就叫做邏輯運算符:
&&:邏輯與,F=A&&B,當A、B的值都為真(即非0值,下同)時,其運算結果F為真(具體數值為1,下同);當A、B值任意一個為假(即0,下同)時,結果F為假(具體數值為0,下同)。
||:邏輯或,F=A||B,當A、B值任意一個為真時,其運算結果F為真;當A、B值都為假時,結果F為假。
!:邏輯非,F=!A,當A值為假時,其運算結果F為真;當A值為真時,結果F為假。
以下邏輯運算符都是按照變量內的每一個位來進行運算的,通常就叫做位運算符:
&:按位與,F=A&B,將A、B兩個字節中的每一位都進行與運算,再將得到的每一位結果組合為總結果F,例如A=0b11001100,B=0b11110000,則結果F就等于0b11000000。
|:按位或,F=A|B,將A、B兩個字節中的每一位都進行或運算,再將得到的每一位結果組合為總結果F,例如A=0b11001100,B=0b11110000,則結果F就等于0b11111100。
~:按位取反,F=~A,將A字節內的每一位進行非運算(就是取反),再將得到的每一位結果組合為總結果F,例如,A=0b11001100,則結果F就等于0b00110011;這個運算符我們在前面的流水燈實驗里已經用過了,現在再回頭看一眼,是不是清楚多了。
^:按位異或,異或的意思是,如果運算雙方的值不同(即相異)則結果為真,雙方值相同則結果為假。在C語言里沒有按變量整體值進行的異或運算,所以我們僅以按位異或為例,F=A^B,A=0b11001100,B=0b11110000,則結果F就等于0b00111100。
我們今后要看資料或芯片手冊的時候,會經常遇到一些電路符號,表1就是數字電路中的常用符號,知道這些符號有利于我們理解器件的邏輯結構,尤其重點認識以下表中的“國外流行圖形符號”。在這里我們先簡單看一下,后邊遇到了知道到這里查閱就可以了。
表1數字邏輯門電路
-
邏輯電路
+關注
關注
13文章
494瀏覽量
42581 -
邏輯運算指令
+關注
關注
0文章
5瀏覽量
6076
發布評論請先 登錄
相關推薦
評論