二進(jìn)制:二進(jìn)制數(shù)據(jù)是用0和1兩個(gè)數(shù)碼來表示的數(shù)。它的基數(shù)為2,進(jìn)位規(guī)則是“逢二進(jìn)一”,借位規(guī)則是“借一當(dāng)二”。計(jì)算機(jī)中的二進(jìn)制則是一個(gè)非常微小的開關(guān),用“開”來表示1,“關(guān)”來表示0。
二進(jìn)制的計(jì)算由計(jì)算機(jī)內(nèi)的門電路進(jìn)行,門電路可以有一個(gè)或多個(gè)輸入端,但只有一個(gè)輸出端。
原碼(true form)是一種計(jì)算機(jī)中對(duì)數(shù)字的二進(jìn)制定點(diǎn)表示方法。原碼表示法在數(shù)值前面增加了一位符號(hào)位(即最高位為符號(hào)位):正數(shù)該位為0,負(fù)數(shù)該位為1(0有兩種表示:+0和-0),其余位表示數(shù)值的大小。
簡單直觀;例如,我們用8位二進(jìn)制表示一個(gè)數(shù),+11的原碼為00001011,-11的原碼就是10001011
反碼:規(guī)定 正數(shù)的反碼與原碼相同。負(fù)數(shù):負(fù)數(shù)的反碼,符號(hào)位為“1”,數(shù)值部分按位取反。
補(bǔ)碼:規(guī)定 正數(shù):正數(shù)的補(bǔ)碼和原碼相同。負(fù)數(shù):負(fù)數(shù)的補(bǔ)碼則是符號(hào)位為“1”。并且,這個(gè)“1”既是符號(hào)位,也是數(shù)值位。數(shù)值部分按位取反后再在末位(最低位)加1。也就是“反碼+1”。
1、門電路
1.1、定義
門電路:“門”是這樣的一種電路:它規(guī)定各個(gè)輸入信號(hào)之間滿足某種邏輯關(guān)系時(shí),才有信號(hào)輸出,通常有下列三種門電路:與門、或門、非門(反相器)。從邏輯關(guān)系看,門電路的輸入端或輸出端只有兩種狀態(tài),無信號(hào)以“0”表示,有信號(hào)以“1”表示。也可以這樣規(guī)定:低電平為“0”,高電平為“1”。門電路一般配合二級(jí)管制做。
1.2、與門
一種基本的門電路,有多個(gè)輸入端,一個(gè)輸出端。當(dāng)所有的輸入同時(shí)為高電平(邏輯1)時(shí),輸出才為高電平,否則輸出為低電平(邏輯0)。
與門的真值表:
與門的二級(jí)管實(shí)現(xiàn):
以二極管實(shí)現(xiàn)為例,與門的實(shí)現(xiàn)原理為:
如圖:為二極管與門電路,Vcc = 5v,R1 = 3KΩ, 假設(shè)3v及以上代表高電平,0.7及以下代表低電平,
下面根據(jù)圖中情況具體分析一下,
1. Ua=Ub=0v時(shí),D1,D2正向偏置,兩個(gè)二極管均會(huì)導(dǎo)通,此時(shí)Uo為電位為0.7v.,輸出為低電平
2.當(dāng)Ua,Ub一高一低時(shí),不妨假設(shè)Ua = 3v,Ub = 0v,這時(shí)我們不妨先從D2開始分析,
D2會(huì)導(dǎo)通,導(dǎo)通后D2壓降將會(huì)被限制在0.7v,那么D1由于右邊是0.7v左邊是3v所以會(huì)反向偏置而截止,因此最后Uo為0.7v低電平輸出,這里也可以從D1開始分析,如果D1導(dǎo)通,那么Uo應(yīng)當(dāng)為3.7v,
此時(shí)D2將導(dǎo)通,那么D2導(dǎo)通,壓降又會(huì)變回0.7,最終狀態(tài)Uo仍然是0.7v.輸出低電平,此時(shí)D1馬上截止。
3. Va=Vb=3v,這個(gè)情況很好理解, D1,D2都會(huì)正偏,Uy被限定在3.7V.
總結(jié)(借用個(gè)定義):通常二極管導(dǎo)通之后,如果其陰極電位是不變的,那么就把它的陽極電位固定在比陰極高0.7V的電位上;如果其陽極電位是不變的,那么就把它的陰極電位固定在比陽極低0.7V的電位上,人們把導(dǎo)通后二極管的這種作用叫做鉗位。(特別說明:壓差大的二極管先導(dǎo)通,先鉗位,先導(dǎo)通的二極管具有電路控制權(quán))
1.3、或門
一種基本的門電路:或門有多個(gè)輸入端,一個(gè)輸出端,只要輸入中有一個(gè)為高電平時(shí)(邏輯“1”),輸出就為高電平(邏輯“1”);只有當(dāng)所有的輸入全為低電平(邏輯“0”)時(shí),輸出才為低電平(邏輯“0”)
或門的真值表:
或門的二級(jí)管實(shí)現(xiàn):
如圖,這里取Vss=0v,不取-10v
1、當(dāng)Ua=Ub=0v時(shí),D1,D2都截至,那么y點(diǎn)為0v.
2、當(dāng)Ua=3v,Ub=0v時(shí),此時(shí)D1導(dǎo)通,Uy=3-0.7=2.3v,D2則截至
同理Ua=0v,Ub=3v時(shí),D2導(dǎo)通,D1截至,Uy=2.3v.
3、當(dāng)Ua=Ub=3v時(shí),此時(shí)D1,D2都導(dǎo)通,Uy=3-0.7=2.3v.
1.4、非門
一種基本的門電路:非門有一個(gè)輸入和一個(gè)輸出端。當(dāng)其輸入端為高電平(邏輯1)時(shí)輸出端為低電平(邏輯0),當(dāng)其輸入端為低電平時(shí)輸出端為高電平。也就是說,輸入端和輸出端的電平狀態(tài)總是反相的。
非門的真值表:
三級(jí)管非門的實(shí)現(xiàn):
晶體管“非”門電路不同于放大電路,管子的工作狀態(tài)或從截止轉(zhuǎn)為飽和,或從飽和轉(zhuǎn)為截止?!胺恰遍T電路只有一個(gè)輸入端A,
當(dāng)A為“1”(設(shè)其電位為3V)時(shí),晶體管飽和,其集電極,即輸出端Y為“0”(其電位在零伏附近);
當(dāng)A為“0”時(shí),晶體管截止,輸出端Y為“1”(其電位近似等于)。所以“非”門電路也稱為反相器。加負(fù)電源是為了使晶體管可靠截止。
圖中,是“非”門的門電阻,其作用是通過它向輸出端提供電壓。T飽和,上產(chǎn)生很大的壓降,使集電極電位幾乎與發(fā)射極的電位相等;截止時(shí),通過加到集電極上,使集電極電壓等于。是輸入電阻,通過它給T加正向偏置電流,即輸入信號(hào)。是反偏電阻,通過它給T加反向偏置電流。這兩個(gè)電阻配合得當(dāng),才可以使輸入“1”時(shí)T飽和導(dǎo)通,輸入“0”時(shí)T可靠截止。
1.5、其他門電路
其他門電路如:與非門、或非門、異或門等都是以上三個(gè)基本門電路組合而來。
異或門:若兩個(gè)輸入的電平相異,則輸出為高電平1;若兩個(gè)輸入的電平相同,則輸出為低電平0。亦即,如果兩個(gè)輸入不同,則異或門輸出高電平1。
2、加減乘除計(jì)算
2.1、加法運(yùn)算
加法器:對(duì)于1位的二進(jìn)制加法,相關(guān)的有五個(gè)的量:1,被加數(shù)A,2,被加數(shù)B,3,前一位的進(jìn)位CIN,4,此位二數(shù)相加的和S,5,此位二數(shù)相加產(chǎn)生的進(jìn)位COUT。前三個(gè)量為輸入量,后兩個(gè)量為輸出量,五個(gè)量均為1位。
計(jì)算機(jī)的加法器都是以上面的逐位進(jìn)位加法器優(yōu)化而來,不再深入探索,有興趣的可自行查找資料。
加法器原理就是用門電路實(shí)現(xiàn)二進(jìn)制的相加運(yùn)算。
2.2、減法運(yùn)算
在計(jì)算機(jī)中,加法和減法其實(shí)是一種運(yùn)算,原因在于計(jì)算機(jī)表示負(fù)數(shù)的方法。
計(jì)算機(jī)中的數(shù)據(jù)存儲(chǔ)時(shí)都會(huì)轉(zhuǎn)化成相應(yīng)的二進(jìn)制補(bǔ)碼,補(bǔ)碼有三個(gè)特性:
1、一個(gè)負(fù)整數(shù)(或原碼)與其補(bǔ)數(shù)(或補(bǔ)碼)相加,和為模。
2、對(duì)一個(gè)整數(shù)的補(bǔ)碼再求補(bǔ)碼,等于該整數(shù)自身。
3、補(bǔ)碼的正零與負(fù)零表示方法相同。
模的定義:“模”是指一個(gè)計(jì)量系統(tǒng)的計(jì)數(shù)范圍。如時(shí)鐘等。計(jì)算機(jī)也可以看成一個(gè)計(jì)量機(jī)器,它也有一個(gè)計(jì)量范圍,即都存在一個(gè)“?!薄@纾?/p>
時(shí)鐘的計(jì)量范圍是0~11,模=12。表示n位的計(jì)算機(jī)計(jì)量范圍是0~2^(n)-1,模=2^(n)。
“模”實(shí)質(zhì)上是計(jì)量器產(chǎn)生“溢出”的量,它的值在計(jì)量器上表示不出來,計(jì)量器上只能表示出模的余數(shù)。任何有模的計(jì)量器,均可化減法為加法運(yùn)算。
例如:假設(shè)當(dāng)前時(shí)針指向10點(diǎn),而準(zhǔn)確時(shí)間是6點(diǎn),調(diào)整時(shí)間可有以下兩種撥法:一種是倒撥4小時(shí),即:10-4=6;另一種是順撥8小時(shí):10+8=12+6=6
舉例:
1、如計(jì)算機(jī)要計(jì)算8-3
2、存儲(chǔ)8為:0000 1000 (正數(shù)的補(bǔ)碼與原碼相同)
3、存儲(chǔ)-3為:1111 1101 (負(fù)數(shù)的補(bǔ)碼為符號(hào)為定為1,其他位求反碼后加1)
4、8-3 可直接用加法器做加法運(yùn)算8 + (-3) 二進(jìn)制可得:0000 0101 轉(zhuǎn)化為十進(jìn)制為:5
2.3、乘法運(yùn)算
我們計(jì)算兩個(gè)數(shù)相乘時(shí)一般如下計(jì)算:
其實(shí)加法器也是模擬這樣的過程,只不過是改為了二進(jìn)制數(shù)而已。計(jì)算機(jī)通過加法器和適當(dāng)?shù)囊莆徊僮魍瓿闪顺朔ㄟ\(yùn)算。
例子:
1011 X 1001 用十進(jìn)制表示為 11X9 結(jié)果當(dāng)然為99
以上文章中有很多乘法器的優(yōu)化,我只講我覺得好理解的一個(gè)
一、乘數(shù)寄存器四位保存1011。
二、被乘數(shù)寄存器四位保存1001。
三、乘積寄存器八位保存乘積,初始0000 0000,乘積寄存器只前四位參與運(yùn)算,后四位只為記錄。
1、第一次運(yùn)算取乘數(shù)最后一位 得1,乘積寄存器前四位加 被乘數(shù) 得 1001 0000
2、乘數(shù)寄存器右移一位得:0101 乘積寄存器右移一位得 0100 1000
3、第二次運(yùn)算重復(fù)步驟1、2 得,乘數(shù):0010 乘積:0110 1100
4、如此,乘數(shù)有幾位就重復(fù)次幾運(yùn)算,當(dāng)乘數(shù)最后一位為0 時(shí)不做加操作,只進(jìn)行移位。
5、第三次運(yùn)算得,乘數(shù):0001 乘積: 0011 0110
6、第四次運(yùn)算得,乘數(shù):0000,四次后整個(gè)運(yùn)算完成,乘積:0110 0011 轉(zhuǎn)化為十進(jìn)制為:99
如上步驟中我們可以看出,計(jì)算機(jī)計(jì)算乘法跟我們計(jì)算乘法時(shí)的步驟一樣,我們用乘數(shù)的個(gè)十百千們分別與被乘數(shù)相乘,然后錯(cuò)位相加得積,計(jì)算積也是把乘數(shù)的第一二三四位分別與被乘數(shù)相乘(相乘時(shí)乘數(shù)為1則積為被乘數(shù),乘數(shù)為0時(shí)則四位全為0所以此時(shí)只進(jìn)行移位操作) 然后用移位操作來模擬錯(cuò)位相加。
2.4、除法運(yùn)算
文章里也有很多除法器優(yōu)化方案,我只以容易理解的說,其原理都是一般。
原理:除法可以變化為減法來算,一個(gè)數(shù)除以另一個(gè)數(shù),可以理解為一個(gè)數(shù)循環(huán)減去另一個(gè)數(shù)減了幾遍商便是幾,這種方式在十進(jìn)制里可能實(shí)在麻煩,但是在二進(jìn)制里卻簡單了不少。
如果兩個(gè)一位數(shù)相除8/3 可理解為8-3-3 = 2,得商為2 余數(shù)為2,但在二進(jìn)制里兩個(gè)一位數(shù)相除只有兩種可能,一種是我大于你,商得1余數(shù)是兩個(gè)數(shù)相減,另一種是我小于你商是0,余數(shù)是我本身;
如上計(jì)算方式我們十進(jìn)制時(shí)也是常用的,只是我們配合九九乘法口決計(jì)算,而二進(jìn)制里只需要從被除數(shù)高位開始逐位與除數(shù)相減,減的到此為得1 ,決不會(huì)有可以減兩次的可能(即商不可能得2),減不到此位得0;
1、被除數(shù)十一位寄存,其實(shí)有效數(shù)字只占七位、除數(shù)四位寄存、商八位寄存,被除數(shù)參與運(yùn)算的只有前四位(因?yàn)槌龜?shù)為四位即前四位)
2、被除數(shù):0000 1001 010 除數(shù):1000 商:0000 0000
3、參于運(yùn)算的值我用紅色標(biāo)識(shí): (1)被除數(shù)左移進(jìn)入運(yùn)算位后位補(bǔ)0: 0001 0010 100 除數(shù):1000 減不到商得0 余為0001 商左移《1》為0000 0000
4、(2)被除數(shù)左移一位 變?yōu)椋?010 0101 000 除數(shù):1000 減不到此為得0 余為0010 商左移《2》為0000 0000
5、(3)被除數(shù)再左移變?yōu)椋?100 1010 000 商左移《3》為0000 0000,(4)再左移得:1001 0100 000 此時(shí)可以減得 商左移《4》為0000 0001 余數(shù)為:0001,被除數(shù)被減后變?yōu)椋?001 0100 000
6、(5)被除數(shù)左移變?yōu)?010 1000 000 《5》商左移為0000 0010 (6)再左移:0101 0000 000 《6》商左移為0000 0100 (7)再左移:1010 0000 000 此時(shí)可以減得 《7》商左移為0000 1001 余數(shù)為:0010 被除數(shù)被減后變?yōu)椋?010 0000 000
7、被除數(shù)有幾位就移動(dòng)幾位,商也跟著移動(dòng)幾位,如上圖標(biāo)號(hào)標(biāo)識(shí),七次移位后得商為:0000 1001 余數(shù)為:0010 后七位舍去,只要參與計(jì)算的前四位。轉(zhuǎn)化為十進(jìn)制為74/8 = 9 余 2
總結(jié):除法器可以用減法替代除法,因?yàn)檫@樣移位相減,在某一位上最多只能減一次被除數(shù)便會(huì)小于除數(shù),所以商得1,同理十進(jìn)制被除數(shù)和除數(shù)如此移位相減的話在某一位上最多只能減九次,即商最大只能為9。
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
795瀏覽量
41700 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7523瀏覽量
88309 -
門電路
+關(guān)注
關(guān)注
7文章
199瀏覽量
40207
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論