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