0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三種基本邏輯運(yùn)算介紹

CHANBAEK ? 來(lái)源:頭條號(hào)底層技術(shù)棧 ? 作者:頭條號(hào)底層技術(shù)棧 ? 2023-03-23 13:57 ? 次閱讀

模擬電路可以利用三極管的導(dǎo)通 / 截止實(shí)現(xiàn)數(shù)字狀態(tài)的切換,從而實(shí)現(xiàn)0和1的邏輯運(yùn)算。

邏輯運(yùn)算常用的有3種:與、或、非,它們都是1個(gè)二進(jìn)制位的位運(yùn)算。

在位運(yùn)算的基礎(chǔ)上,可以進(jìn)一步實(shí)現(xiàn)加減運(yùn)算。

位運(yùn)算的特點(diǎn)是,多個(gè)位之間是無(wú)關(guān)的。

加減運(yùn)算有進(jìn)位和借位,多個(gè)位之間是相關(guān)的。

這里簡(jiǎn)單的給一下它們的電路:

1,與門,

pYYBAGQb6mCAS4pyAACy4xHE10U431.jpg

電路,與門

1個(gè)電阻和2個(gè)二極管組成的與門,如上圖。

2個(gè)二極管只要有1個(gè)導(dǎo)通(低電位0),輸出電位就是0.7v,為低電位0。

0 & 1 == 1 & 0 == 0.

2個(gè)二極管都截止時(shí)(高電位1),輸出等于電源電壓,為高電位1。

1 & 1 == 1.

2,或門,

或門正好反過(guò)來(lái),二極管接近電源正極,電阻接近電源負(fù)極。

poYBAGQb6mGALCsLAACsjsyAuM0784.jpg

電路,或門

2個(gè)二極管里只要有一個(gè)導(dǎo)通(高電位1),輸出端就是高電位1。

1 | 0 == 0 | 1 == 1.

2個(gè)二極管都截止時(shí),輸出端是低電位0。

0 | 0 == 0.

二極管接到電源正極上就會(huì)導(dǎo)通,接到負(fù)極上就會(huì)截止。

3,非門,

非門,利用的是三極管的反相放大器。

當(dāng)b極為高電位1時(shí),三極管導(dǎo)通,電源電壓大部分加在上拉電阻上,輸出為低電位0。

反之,輸出為高電位1。

pYYBAGQb6mKACz7jAACuVfpiODw455.jpg

電路,非門

位運(yùn)算的電路都是很簡(jiǎn)單的,因?yàn)槎鄠€(gè)位之間不相關(guān)。

只要把多個(gè)電路并聯(lián)起來(lái),每個(gè)處理1個(gè)二進(jìn)制位,就可以實(shí)現(xiàn)32位的運(yùn)算。

4,加法,

加法因?yàn)橛羞M(jìn)位,比單純的位運(yùn)算要復(fù)雜一點(diǎn)。

0 + 0 = 0,

1 + 0 = 1,

0 + 1 = 1,

1 + 1 = 10,

二進(jìn)制加法的前3種情況就是或運(yùn)算,所以1個(gè)或門就可以處理前3種情況。

復(fù)雜的是1+1 = 10的情況,要處理進(jìn)位:個(gè)位要變成0,十位要進(jìn)位1。

主要說(shuō)說(shuō)這種情況:

下圖是我隨手畫的二進(jìn)制加法的電路

poYBAGQb6mOAKZfIAAC-tgTiZ7o057.jpg

電路,加法

藍(lán)色的電阻和2個(gè)向右的二極管組成或門,處理前3種情況:

0 + 0時(shí),個(gè)位輸出和三極管的b極都是0,結(jié)果為0;

0 + 1 == 1 + 0時(shí),個(gè)位輸出為1,三極管的b極為0,結(jié)果為1。

最后一種情況,1 + 1 == 10 時(shí):

紅色的電阻和2個(gè)向左的二極管組成與門,當(dāng)2個(gè)加數(shù)都是1時(shí),三極管的b極為高電位1,

這時(shí)三極管導(dǎo)通,三極管的c極為低電位0;

或門的輸出為1,電流將沿著圖中箭頭的流向,經(jīng)過(guò)三極管的c-e極流入電源負(fù)極,

個(gè)位輸出與三極管的c極電壓一樣,為低電位0;

十位輸出與三極管的b極電壓一樣,為高電位1。

這樣就實(shí)現(xiàn)了1個(gè)二進(jìn)制位的加法運(yùn)算:1 + 1 = 10.

如果有多個(gè)二進(jìn)制位,就把上圖的電路并聯(lián)起來(lái),同時(shí)把(十位的)進(jìn)位輸出轉(zhuǎn)到下一級(jí)的輸入,繼續(xù)更高位的運(yùn)算。

位數(shù)越高電路越復(fù)雜,因?yàn)榧臃ǖ母鱾€(gè)位之間是可以進(jìn)位的。

所以,在數(shù)字電路層面不適合處理復(fù)雜的邏輯,因?yàn)閮H僅是加減乘除的實(shí)現(xiàn)就已經(jīng)很復(fù)雜了。

所以,計(jì)算機(jī)的設(shè)計(jì)必然是分層的:

1)數(shù)字電路僅僅實(shí)現(xiàn)匯編代碼級(jí)的邏輯,

2)更復(fù)雜的程序邏輯,放在C語(yǔ)言層面,

3)最復(fù)雜的邏輯,放在高級(jí)語(yǔ)言層面,畢竟C語(yǔ)言是個(gè)掛著高級(jí)語(yǔ)言的名頭的大號(hào)匯編如果不做分層設(shè)計(jì),電子工程師要考慮的情況就太多了,需求的耦合度太大!

一旦耦合度大了之后,工程師們就會(huì)考慮分層分模塊的設(shè)計(jì)。

編譯器被分為詞法、語(yǔ)法、語(yǔ)義、中間代碼、機(jī)器碼、目標(biāo)文件生成、連接器,也是因?yàn)椴贿@么劃分的話?cǎi)詈隙忍罅恕?/p>

匯編代碼難寫,是因?yàn)樗^(guò)于底層,與人類平時(shí)的思維方式差別很大。

但從數(shù)字電路的角度來(lái)看,匯編代碼已經(jīng)很上層了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 三極管
    +關(guān)注

    關(guān)注

    142

    文章

    3561

    瀏覽量

    120890
  • 模擬電路
    +關(guān)注

    關(guān)注

    125

    文章

    1546

    瀏覽量

    102438
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134090
  • 數(shù)字電路
    +關(guān)注

    關(guān)注

    193

    文章

    1579

    瀏覽量

    80180
  • 邏輯運(yùn)算
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    9735
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    16進(jìn)制字符串的邏輯運(yùn)算問(wèn)題

    在一些網(wǎng)站上看到有些大蝦編的程序,邏輯運(yùn)算前竟然可以是16進(jìn)制字符串,如圖但是系統(tǒng)明明說(shuō)邏輯運(yùn)算只支持布爾和數(shù)值類型,這是怎么回事呢,求解!!!!!!還有其他方法可以實(shí)現(xiàn)16進(jìn)制字符的邏輯運(yùn)算嗎?
    發(fā)表于 09-17 12:48

    邏輯運(yùn)算符是什么

    邏輯運(yùn)算符:與或非條件結(jié)構(gòu)if -else及其嵌套循環(huán)結(jié)構(gòu)whilefordo-while
    發(fā)表于 07-14 07:50

    邏輯電路與邏輯運(yùn)算

    一、邏輯電路與邏輯運(yùn)算邏輯運(yùn)算符:(1)按變量整體值進(jìn)行運(yùn)算邏輯與(&&)邏輯或(||)
    發(fā)表于 07-16 10:51

    基本邏輯運(yùn)算

    基本邏輯運(yùn)算   在分析和設(shè)計(jì)數(shù)字電路時(shí),需要使用的一個(gè)數(shù)學(xué)工具是邏輯代數(shù)。邏輯代數(shù)也稱為布爾代數(shù),由英國(guó)數(shù)學(xué)家G.Boole提出。邏輯代數(shù)是按一定
    發(fā)表于 04-06 23:56 ?3116次閱讀
    基本<b class='flag-5'>邏輯運(yùn)算</b>

    邏輯運(yùn)算,什么是邏輯運(yùn)算

    邏輯運(yùn)算,什么是邏輯運(yùn)算    計(jì)算機(jī)中除了進(jìn)行加、減、乘、除等基本算術(shù)運(yùn)算外,還可對(duì)兩個(gè)或一個(gè)邏輯數(shù)進(jìn)行邏輯運(yùn)算。所謂
    發(fā)表于 04-13 10:48 ?3.2w次閱讀

    實(shí)用數(shù)制轉(zhuǎn)換及邏輯運(yùn)算計(jì)算器

    軟件介紹 二進(jìn)制,十進(jìn)制數(shù)值轉(zhuǎn)換,取余,取模,位或等邏輯運(yùn)算計(jì)算器
    發(fā)表于 03-04 16:54 ?228次下載
    實(shí)用數(shù)制轉(zhuǎn)換及<b class='flag-5'>邏輯運(yùn)算</b>計(jì)算器

    邏輯運(yùn)算與移位指令

    邏輯運(yùn)算與移位指令:8086/8088CPU的指令系統(tǒng)提供8位和16位的邏輯運(yùn)算與移位指令有3組。 邏輯運(yùn)算指令 AND/OR/XOR/NOT/TEST 移位指令 SHL/SHR/SAL/SAR 循環(huán)移位指令 ROL/ROR/R
    發(fā)表于 07-03 23:52 ?0次下載

    基于單片機(jī)實(shí)現(xiàn)的邏輯運(yùn)算程序詳解

    本文主要介紹的是基于單片機(jī)實(shí)現(xiàn)的邏輯運(yùn)算程序詳解,具體的跟隨小編一起來(lái)了解一下。
    的頭像 發(fā)表于 05-12 01:47 ?9969次閱讀

    單片機(jī)的邏輯電路與邏輯運(yùn)算介紹

    在數(shù)字電路,我們經(jīng)常會(huì)遇到邏輯電路,而在 C 語(yǔ)言中,我們則經(jīng)常用到邏輯運(yùn)算,二者在原理上是相互關(guān)聯(lián)的。輯運(yùn)算
    的頭像 發(fā)表于 01-29 12:52 ?7716次閱讀
    單片機(jī)的<b class='flag-5'>邏輯</b>電路與<b class='flag-5'>邏輯運(yùn)算</b>的<b class='flag-5'>介紹</b>

    51單片機(jī)的算術(shù)和邏輯運(yùn)算功能介紹

    A)算術(shù)和邏輯運(yùn)算,可對(duì)半字節(jié)(一個(gè)字節(jié)是8位,半個(gè)字節(jié)就是4位)和單字節(jié)數(shù)據(jù)進(jìn)行操作。 B)加、減、乘、除、加1、減1、比較等算術(shù)運(yùn)算。 C)與、或、異或、求補(bǔ)、循環(huán)等邏輯運(yùn)算。 D)位處理功能(即布爾處理器
    發(fā)表于 09-14 17:20 ?4579次閱讀

    什么是邏輯運(yùn)算

    邏輯運(yùn)算符對(duì)其操作數(shù)求值,并返回一個(gè)值,該值指示求值結(jié)果是真還是假(true or false)。例如,運(yùn)算a && b測(cè)試a和b是否都為真,如果兩個(gè)操作數(shù)都為真,則運(yùn)算符返回真。否則,運(yùn)算
    的頭像 發(fā)表于 02-09 15:55 ?1864次閱讀
    什么是<b class='flag-5'>邏輯運(yùn)算</b>符

    C語(yǔ)言邏輯運(yùn)算符優(yōu)先次序

    有3邏輯運(yùn)算符:與(AND),或(OR),非(NOT)。在basic和Pascal等語(yǔ)言可以在程序中直接用and,or,not作為邏輯運(yùn)算符。在C語(yǔ)言中不能再程序中直接使用,而是用其他符號(hào)代替。
    的頭像 發(fā)表于 03-09 10:49 ?2751次閱讀

    KUKA機(jī)器人的邏輯運(yùn)算

    邏輯運(yùn)算符用于布爾變量、常數(shù)和簡(jiǎn)單的、借助比較運(yùn)算符構(gòu)成的邏輯表達(dá)式的邏輯運(yùn)算。
    發(fā)表于 07-21 10:06 ?2181次閱讀
    KUKA機(jī)器人的<b class='flag-5'>邏輯運(yùn)算</b>符

    verilog的邏輯運(yùn)算

    寫在前面 之前曾經(jīng)整理過(guò)verilog的各類運(yùn)算符的表達(dá)方式,但是在學(xué)習(xí)的過(guò)程中并未深入研究關(guān)于邏輯運(yùn)算符的相關(guān)知識(shí),導(dǎo)致在實(shí)際使用過(guò)程中錯(cuò)誤頻出,下面是我從網(wǎng)絡(luò)上整理的相關(guān)verilog的邏輯運(yùn)算
    的頭像 發(fā)表于 09-21 10:07 ?1853次閱讀
    verilog的<b class='flag-5'>邏輯運(yùn)算</b>符

    PLC中的邏輯運(yùn)算方式有哪些

    PLC(可編程邏輯控制器)中的邏輯運(yùn)算方式主要包括以下幾種,這些邏輯運(yùn)算在PLC編程中扮演著至關(guān)重要的角色,用于實(shí)現(xiàn)各種復(fù)雜的控制邏輯。
    的頭像 發(fā)表于 07-24 16:55 ?297次閱讀