第02章-數(shù)的表示與計(jì)算體系_第1頁(yè)
第02章-數(shù)的表示與計(jì)算體系_第2頁(yè)
第02章-數(shù)的表示與計(jì)算體系_第3頁(yè)
第02章-數(shù)的表示與計(jì)算體系_第4頁(yè)
第02章-數(shù)的表示與計(jì)算體系_第5頁(yè)
已閱讀5頁(yè),還剩91頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章數(shù)的表示與計(jì)算體系2.1

進(jìn)位計(jì)數(shù)制與數(shù)制轉(zhuǎn)換2.2

無(wú)符號(hào)數(shù)與文字的表示2.3

帶符號(hào)數(shù)的表示2.4

定點(diǎn)數(shù)與定點(diǎn)運(yùn)算2.5

浮點(diǎn)數(shù)與浮點(diǎn)運(yùn)算2.6BCD碼(binarycodeddecimal)2.7

數(shù)據(jù)校驗(yàn)碼2.8

時(shí)序邏輯電路2.9

組合邏輯電路2.10陣列邏輯電路習(xí)

題2第2章

數(shù)的表示與計(jì)算體系2.1.1進(jìn)位計(jì)數(shù)制(1)十進(jìn)制數(shù)(DecimalSystem)

定義:按“逢十進(jìn)一,借一當(dāng)十”的原則進(jìn)行計(jì)數(shù),稱為十進(jìn)制數(shù),即每位上計(jì)滿10時(shí)向高位進(jìn)一。

特點(diǎn):每個(gè)數(shù)的數(shù)位上只能是0、1、2、3、4、5、6、7、8、9十個(gè)數(shù)碼;十進(jìn)制數(shù)中最大數(shù)字是9,最小數(shù)字是0;基數(shù)為10;

十進(jìn)制數(shù)的位權(quán)表示:N=an-110n-1+an-210n-2+…+a1101+a0100+a-110-1+a-210-2+…+a-m10-m例如,(1234)10=1×103+2×102+3×101+4×1002.1

進(jìn)位計(jì)數(shù)制與數(shù)制轉(zhuǎn)換(2)二進(jìn)制數(shù)(BinarySystem)

定義:按“逢二進(jìn)一,借一當(dāng)二”的原則進(jìn)行計(jì)數(shù),稱為二進(jìn)制數(shù),即每位上計(jì)滿2時(shí)向高位進(jìn)一。

特點(diǎn):每個(gè)數(shù)的數(shù)位上只能是0,1兩個(gè)數(shù)字;二進(jìn)制數(shù)中最大數(shù)字是1,最小數(shù)字是0;基數(shù)為2。

二進(jìn)制數(shù)的位權(quán)表示:(0010.1011)2=0×23+0×22+1×21+0×20+1×2-1+0×2-2+1×2-3+1×2-4

二進(jìn)制數(shù)的運(yùn)算規(guī)則:

加法運(yùn)算①0+0=0②0+1=1+0=1③1+1=0(進(jìn)1)

減法運(yùn)算①0-0=0②1-1=0③1-0=1④0-1=1(借1)

乘法運(yùn)算①0×0=0②1×1=1③0×1=1×0=0(3)八進(jìn)制數(shù)(OctalSystem)

定義:按“逢八進(jìn)一,借一當(dāng)八”的原則進(jìn)行計(jì)數(shù),稱為八進(jìn)制數(shù),即每位上計(jì)滿8時(shí)向高位進(jìn)一。

特點(diǎn):每個(gè)數(shù)的數(shù)位上只能是0、1、2、3、4、5、6、7八個(gè)數(shù)字。

八進(jìn)制數(shù)的位權(quán)表示:(567.012)8=5×82+6×81+7×80+0×8-1+1×8-2+2×8-3(4)十六進(jìn)制數(shù)(HexdecimalSystem)

定義:按“逢十六進(jìn)一,借一當(dāng)十六”的原則進(jìn)行計(jì)數(shù),稱為十六進(jìn)制數(shù),即每位上計(jì)滿16時(shí)向高位進(jìn)一。

特點(diǎn):每個(gè)數(shù)的數(shù)位上只能是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六個(gè)數(shù)碼。

十六進(jìn)制數(shù)的位權(quán)表示:(90AB.CDEF)16=9×163+0×162+10×161+11×160

+12×16-1+13×16-2+14×16-3+15×16-4(5)常用計(jì)數(shù)制間的對(duì)應(yīng)關(guān)系

十進(jìn)制數(shù)使用D(可以省略),二進(jìn)制數(shù)使用B,八進(jìn)制數(shù)使用Q,十六進(jìn)制使用H。八進(jìn)制對(duì)應(yīng)二進(jìn)制十六進(jìn)制對(duì)應(yīng)二進(jìn)制十六進(jìn)制對(duì)應(yīng)二進(jìn)制0000000008100010011000191001201020010A(10)1010301130011B(11)1011410040100C(12)1100510150101D(13)1101611060110E(14)1110711170111F(15)11112.1.2數(shù)制間的轉(zhuǎn)換(1)非十進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)

非十進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)采用“位權(quán)法”,即把各非十進(jìn)制數(shù)按位權(quán)展開(kāi),然后求和。(2)二、八、十六進(jìn)制數(shù)之間轉(zhuǎn)換

把二進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)時(shí),按“三位并一位”的方法進(jìn)行。

以小數(shù)點(diǎn)為界,將整數(shù)部分從右向左每三位一組,最高位不足三位時(shí),添0補(bǔ)足三位;小數(shù)部分從左向右,每三位一組,最低有效位不足三位時(shí),添0補(bǔ)足三位。然后,將各組的三位二進(jìn)制數(shù)按權(quán)展開(kāi)后相加,得到一位八進(jìn)制數(shù)。

將八進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)數(shù)時(shí),采用“一位拆三位”的方法進(jìn)行。(3)十進(jìn)制數(shù)轉(zhuǎn)換成非十進(jìn)制數(shù)整數(shù)部分

十進(jìn)制整數(shù)化為非十進(jìn)制整數(shù)采用“余數(shù)法”,即除基數(shù)取余數(shù)。把十進(jìn)制整數(shù)逐次用任意十制數(shù)的基數(shù)去除,一直到商是0為止,然后將所得到的余數(shù)由下而上排列即可。小數(shù)部分

十進(jìn)制小數(shù)轉(zhuǎn)換成非十進(jìn)制小數(shù)采用“進(jìn)位法”,即乘基數(shù)取整數(shù)。這種方法稱為“乘2取整法”或“乘2法”。

無(wú)符號(hào)數(shù)的表示2.2無(wú)符號(hào)數(shù)與文字的表示

計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理時(shí),一次存取、加工和傳送的數(shù)據(jù)長(zhǎng)度稱為字(word)。計(jì)算機(jī)的字長(zhǎng)越大,其性能越優(yōu)越。

所謂大端存儲(chǔ)就是將多個(gè)字節(jié)數(shù)據(jù)依次存放,將高字節(jié)數(shù)據(jù)存放到低地址,將低字節(jié)數(shù)據(jù)存放到高地址。(a)大端存儲(chǔ)(b)小端存儲(chǔ)圖2.1計(jì)算機(jī)中多字節(jié)數(shù)據(jù)的存儲(chǔ)地址數(shù)據(jù)地址數(shù)據(jù)100H12H100H78H101H34H101H56H102H56H102H34H103H78H103H12H104H……104H……十進(jìn)制數(shù)串的表示

大多數(shù)通用性較強(qiáng)的計(jì)算機(jī)都能直接處理十進(jìn)制形式表示的數(shù)據(jù)。主要有兩種形式:字符串形式

即一個(gè)字節(jié)存放一個(gè)十進(jìn)制的數(shù)位或符號(hào)位。一個(gè)十進(jìn)制數(shù)占用連續(xù)的多個(gè)字節(jié),使用時(shí)需要給出該數(shù)在主存中的起始地址和位數(shù)(串的長(zhǎng)度)。主要用在非數(shù)值計(jì)算領(lǐng)域。壓縮的十進(jìn)制數(shù)串形式

即一個(gè)字節(jié)存放兩個(gè)十進(jìn)制的數(shù)位。它比前一種形式節(jié)省存儲(chǔ)空間,又便于直接完成十進(jìn)制數(shù)運(yùn)算,從而被廣泛采用。類(lèi)似的,它也要給出數(shù)據(jù)在主存中的首地址和位數(shù)(又稱位長(zhǎng),不含符號(hào)位)。位長(zhǎng)為0的數(shù)其值為0。十進(jìn)制數(shù)串表示法的優(yōu)點(diǎn)是位長(zhǎng)可變。西文字符在計(jì)算機(jī)中的表示ASCII(American

Standard

Code

for

Information

Interchange)

美國(guó)信息交換標(biāo)準(zhǔn)代碼ASCII是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語(yǔ)和其他西歐語(yǔ)言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國(guó)際標(biāo)準(zhǔn)ISO/IEC646。ANSI(American

National

Standards

Institute)

美國(guó)國(guó)家標(biāo)準(zhǔn)碼ANSI碼是一種字符代碼,為使計(jì)算機(jī)支持更多語(yǔ)言,通常使用0x00~0x7f范圍的1個(gè)字節(jié)來(lái)表示1個(gè)英文字符。超出此范圍的使用0x80~0xFFFF來(lái)編碼,即擴(kuò)展的ASCII編碼。不同的國(guó)家和地區(qū)制定了不同的標(biāo)準(zhǔn),不同ANSI編碼標(biāo)準(zhǔn)之間互不兼容。ANSI編碼表示英文字符時(shí)用一個(gè)字節(jié),表示中文用兩個(gè)或四個(gè)字節(jié)。EBCDIC(Extended

Binary

Coded

Decimal

Interchange

Code)

EBCDIC為國(guó)際商用機(jī)器公司(IBM)于1963年間推出的字符編碼表,根據(jù)早期打孔機(jī)式的二進(jìn)化十進(jìn)數(shù)(BCD,Binary

Coded

Decimal)排列而成。每個(gè)字母或數(shù)字字符都被表示為一個(gè)8位的二進(jìn)制數(shù),共有256個(gè)字符被定義。Unicode(統(tǒng)一碼)

Unicode是國(guó)際組織制定的可以容納世界上所有文字和符號(hào)的字符編碼方案,為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼。Unicode的實(shí)現(xiàn)有UTF-8、UTF-16、UTF-32等編碼方案。中文字符在計(jì)算機(jī)中的表示(1)漢字編碼標(biāo)準(zhǔn)

常見(jiàn)的漢字編碼標(biāo)準(zhǔn)有GB2312-80、BIG5和Unicode等。區(qū)位碼編碼與ASCII一致,編碼范圍2121H~7E7EH。圖2.2區(qū)位碼

所有的漢字及符號(hào)分配在一個(gè)94行、94列的表格中,每一行稱為一個(gè)“區(qū)”,編號(hào)為01區(qū)到94區(qū);每一列稱為一個(gè)“位”,編號(hào)為01位到94位。區(qū)位碼和國(guó)標(biāo)碼關(guān)系:一級(jí)漢字(3755個(gè))二級(jí)漢字(3008個(gè))(擴(kuò)充使用)字母、數(shù)字和各種符號(hào) ………………19423位號(hào)…………191655568794區(qū)號(hào)(按漢語(yǔ)拼音排列)(按偏旁部首排列)國(guó)標(biāo)碼=區(qū)位碼H+2020H(2)機(jī)內(nèi)碼國(guó)標(biāo)碼和機(jī)內(nèi)碼的關(guān)系是:機(jī)內(nèi)碼=國(guó)標(biāo)碼+8080H區(qū)位碼和機(jī)內(nèi)碼的關(guān)系是:機(jī)內(nèi)碼=區(qū)位碼+A0A0H(3)漢字字形碼

有點(diǎn)陣式漢字和矢量漢字兩種表示方法。圖2.4點(diǎn)陣式漢字示例布爾代數(shù)與布爾邏輯(1)布爾代數(shù)表2.3A與B的邏輯運(yùn)算表

計(jì)算機(jī)中的邏輯運(yùn)算,主要是指邏輯非、邏輯加、邏輯乘、邏輯異四種基本運(yùn)算。ABAANDBAORBAXORB00000100110101111110(2)邏輯非及非門(mén)

邏輯非運(yùn)算:邏輯非也稱求反。常用變量前方加一~或上方加一橫來(lái)表示。表2.4“非”運(yùn)算(NOT)(3)邏輯與及與門(mén)

邏輯乘運(yùn)算:對(duì)兩數(shù)進(jìn)行邏輯乘,就是按位求它們的“與”(And),所以邏輯乘又稱“邏輯與”,常用記號(hào)“∧”或“·”來(lái)表示。假設(shè)有兩數(shù)x、y,它們表示為:x=x0x1x2…xn,y=y0y1y2…yn,則有:z=x∧y=z0z1z2…zn(i=0,1,2,…,n),zi=xi∧yi(i=0,1,2,…,n)(4)邏輯或及或門(mén)

邏輯加運(yùn)算:對(duì)兩個(gè)數(shù)進(jìn)行邏輯加,就是按位求它們的“或”(Or),所以邏輯加又稱邏輯或,常用記號(hào)“∨”或“+”來(lái)表示。(5)邏輯異或及異或門(mén)

邏輯異運(yùn)算:對(duì)兩數(shù)進(jìn)行異就是按位求它們的模2和,所以邏輯異又稱“按位加”(Xor),常用記號(hào)“⊕”或”

”表示。有兩數(shù)x、y,它們表示為:x=x0x1x2…xn,y=y0y1y2…yn,則有:z=x⊕y=z0z1z2…zn(i=0,1,2,…,n)。2.3.1機(jī)器數(shù)與真值

采用二進(jìn)制表示形式的連同數(shù)符一起代碼化了的數(shù)據(jù),在計(jì)算機(jī)中統(tǒng)稱為機(jī)器數(shù)或機(jī)器碼。而與機(jī)器數(shù)對(duì)應(yīng)的用正、負(fù)符號(hào)加絕對(duì)值來(lái)表示的實(shí)際數(shù)值稱為真值。機(jī)器數(shù)可分為無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)兩種。2.3帶符號(hào)數(shù)的表示

綜上所述,可得機(jī)器數(shù)的特點(diǎn)為:

數(shù)的符號(hào)采用二進(jìn)制代碼化,0表“+”,1代表“-”。符號(hào)通常放在數(shù)據(jù)最高位。

小數(shù)點(diǎn)本身是隱含的,不占用存儲(chǔ)空間。

所以機(jī)器數(shù)表示的數(shù)值是不連續(xù)的。8位二進(jìn)制帶符號(hào)數(shù)中,00000000~01111111為正整數(shù)0~127,11111111~10000000為負(fù)數(shù)-127~0,其中00000000表示+0,10000000表示-0。2.3.2原碼表示(1)原碼的定義

設(shè)為x為二進(jìn)制數(shù)據(jù),數(shù)值部分的位數(shù)為n,給出了x為純小數(shù)±0.x1x2…xn和x為純整數(shù)±x1x2…xn時(shí)的原碼表示的定義。

純小數(shù)原碼的定義:

純整數(shù)原碼的定義:2.3.3補(bǔ)碼表示(1)模的概念

對(duì)于任意x,在模M的條件下的補(bǔ)數(shù)[x]補(bǔ),可給出:[x]補(bǔ)=m+x(modM)。可知:1)當(dāng)x≥0時(shí),m+x大于M,把M丟掉,得[x]補(bǔ)=x,即正數(shù)的補(bǔ)數(shù)等于其本身。2)當(dāng)x<0時(shí),[x]補(bǔ)=m+x=M-|x|,即負(fù)數(shù)的補(bǔ)數(shù)等于模與該數(shù)絕對(duì)值之差。(2)補(bǔ)碼的定義

由于計(jì)算機(jī)中的數(shù)據(jù)均采用二進(jìn)制編碼表示,因此通常將某數(shù)對(duì)模的補(bǔ)數(shù)稱為補(bǔ)碼。對(duì)于數(shù)值部分的位數(shù)為n的二進(jìn)制數(shù)據(jù)x,給出了x為純小數(shù)±0.x1x2…xn和x為純整數(shù)±x1x2…xn時(shí)的補(bǔ)碼表示的定義。

純小數(shù)補(bǔ)碼的定義:

純整數(shù)補(bǔ)碼的定義:2.3.4反碼表示(1)反碼的定義

2.3.5移碼表示(1)移碼的定義

純小數(shù)移碼的定義:[x]移=1+x,-1≤x<1

純整數(shù)移碼的定義:[x]移=2n+x,-1≤x<1(2)移碼與補(bǔ)碼的關(guān)系當(dāng)0≤x<2n時(shí),[x]補(bǔ)=x,因?yàn)閇x]移=2n+x,所以[x]移=2n+[x]補(bǔ)。當(dāng)-2n≤x<0時(shí),[x]補(bǔ)=2n+1+x,因?yàn)閇x]移=2n+[x]補(bǔ)-2n+1=[x]補(bǔ)-2n。其中,n為數(shù)值部分的長(zhǎng)度。(3)移碼的特點(diǎn)設(shè)[x]移=x0x1x2…xn,符號(hào)位x0表示真值x的正負(fù)。x0=1,x為正;x0=0,x為負(fù)。真值0的移碼表示只有一種形式:[+0]移=[-0]移=1000。移碼與補(bǔ)碼的表示范圍相同。純小數(shù)的移碼可以表示到-1,[-1]移=0.0...0;純整數(shù)的移碼可以表示到-2n,n為數(shù)值部分的長(zhǎng)度,[-2n]移=00...0。真值大時(shí),對(duì)應(yīng)的移碼也大;真值小時(shí),對(duì)應(yīng)的移碼也小。2.4.1定點(diǎn)表示

定點(diǎn)格式(fixedpointformat)約定所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。

浮點(diǎn)格式(floating-pointformat)正好相反,數(shù)據(jù)的小數(shù)點(diǎn)位置是浮動(dòng)可變的。2.4定點(diǎn)數(shù)與定點(diǎn)運(yùn)算圖2.9定點(diǎn)數(shù)的兩種格式

當(dāng)小數(shù)點(diǎn)位于數(shù)符和第一數(shù)值位之間時(shí),機(jī)器內(nèi)的數(shù)為純小數(shù);當(dāng)小數(shù)點(diǎn)位于數(shù)值位之后時(shí),機(jī)器內(nèi)的數(shù)為純整數(shù)。采用定點(diǎn)數(shù)的機(jī)器稱為定點(diǎn)機(jī)。2.4.2加法與減法運(yùn)算(1)補(bǔ)碼加減運(yùn)算的基本公式

補(bǔ)碼加法的基本公式為:整數(shù):[A]補(bǔ)+[B]補(bǔ)=[A+B]補(bǔ)(mod2n+1)

小數(shù):[A]補(bǔ)+[B]補(bǔ)=[A+B]補(bǔ)(mod2)對(duì)于減法,因A-B=A+(-B),則:[A-B]補(bǔ)=[A+(-B)]補(bǔ)由補(bǔ)碼加法基本公式可得:整數(shù):[A-B]補(bǔ)=[A]補(bǔ)+[-B]補(bǔ)(mod2n+1)

小數(shù):[A-B]補(bǔ)=[A]補(bǔ)+[-B]補(bǔ)(mod2)

(2)溢出判斷用一位符號(hào)位判斷溢出

對(duì)于加法,只有在正數(shù)加正數(shù)和負(fù)數(shù)加負(fù)數(shù)兩種情況下才可能出現(xiàn)溢出,符號(hào)不同的兩個(gè)數(shù)相加是不會(huì)出現(xiàn)溢出的。對(duì)于減法,只有在正數(shù)減負(fù)數(shù)或負(fù)數(shù)減正數(shù)兩種情況下才可能出現(xiàn)溢出,符號(hào)相同的兩個(gè)數(shù)相減是不會(huì)出現(xiàn)溢出的。利用最高位(符號(hào)位c0)和次高位(數(shù)值部分的最高位c1)的進(jìn)位狀況來(lái)判斷

兩個(gè)補(bǔ)碼數(shù)實(shí)現(xiàn)加減運(yùn)算時(shí),若最高數(shù)值位c1向符號(hào)位c0的進(jìn)位值與符號(hào)位c0產(chǎn)生的進(jìn)位輸出值不相同,則表明加減運(yùn)算產(chǎn)生了溢出。采用雙符號(hào)位補(bǔ)碼進(jìn)行判斷。

雙符號(hào)位補(bǔ)碼又稱為變形補(bǔ)碼或模4補(bǔ)碼,即對(duì)于任何小于1的正數(shù),雙符號(hào)位為00;對(duì)于任何大于-1的負(fù)數(shù),雙符號(hào)位為11。當(dāng)兩數(shù)相加的結(jié)果在符號(hào)位出現(xiàn)01或10兩種組合時(shí),說(shuō)明出現(xiàn)了溢出。2.4.3原碼乘法運(yùn)算計(jì)算機(jī)中實(shí)現(xiàn)乘除運(yùn)算通常采用以下三種方式:利用乘除運(yùn)算子程序

這種方式的基本思想是采用軟件實(shí)現(xiàn)乘除運(yùn)算。通常是利用計(jì)算機(jī)中的加減運(yùn)算指令、移位指令及控制類(lèi)指令組成循環(huán)程序,得到運(yùn)算結(jié)果。乘除運(yùn)算邏輯部件

在加法器的基礎(chǔ)上增加左、右移位及計(jì)數(shù)器等邏輯線路構(gòu)成乘除運(yùn)算部件,采用硬件實(shí)現(xiàn)乘除運(yùn)算。在這種計(jì)算機(jī)中,設(shè)置有乘除運(yùn)算指令,用戶只需執(zhí)行乘除指令即可進(jìn)行乘除運(yùn)算。設(shè)置專(zhuān)用的陣列乘除運(yùn)算器

由于前一方式在實(shí)現(xiàn)乘除運(yùn)算時(shí),通常是在一個(gè)加法器上多次串行地進(jìn)行運(yùn)算,所以依然需要較多的運(yùn)算時(shí)間。(1)原碼一位乘法

在原碼一位乘法中,參加運(yùn)算的被乘數(shù)和乘數(shù)均用原碼表示;運(yùn)算時(shí)符號(hào)位單獨(dú)處理,被乘數(shù)與乘數(shù)的絕對(duì)值相乘;所得的積也采用原碼表示。(2)原碼兩位乘法

原碼兩位乘法算法的思想是每次判別乘數(shù)的兩位,將一位乘法中的兩步用一步替代。設(shè)乘法判別位為yn-1yn,zi-1為前次部分積,zi為兩位乘法的第i位部分積。表2.5原碼兩位乘法的運(yùn)算規(guī)則2.4.4原碼除法運(yùn)算(1)原碼恢復(fù)余數(shù)法

在原碼除法中,參加運(yùn)算的被除數(shù)和除數(shù)均采用原碼表示,所得的商和余數(shù)也采用原碼表示。運(yùn)算時(shí),符號(hào)位單獨(dú)處理,被除數(shù)和除數(shù)的絕對(duì)值相除。為了保證定點(diǎn)除法的運(yùn)算結(jié)果不超過(guò)機(jī)器所能表示的定點(diǎn)數(shù)據(jù)范圍,在進(jìn)行除法之前必須判定被除數(shù)和除數(shù)是否滿足定點(diǎn)小數(shù)除法或定點(diǎn)整數(shù)除法的要求。(2)原碼不恢復(fù)余數(shù)法

在恢復(fù)余數(shù)法的運(yùn)算過(guò)程中,可以發(fā)現(xiàn)將“加除數(shù)(恢復(fù)余數(shù))→左移→減除數(shù)”的操作用“余數(shù)左移→加除數(shù)”的操作來(lái)替代,所得結(jié)果是一樣的。而且這樣做,既節(jié)省了恢復(fù)余數(shù)的時(shí)間,又簡(jiǎn)化了除法控制邏輯(無(wú)論余數(shù)為正還是為負(fù),余數(shù)的操作均為左移、加/減運(yùn)算兩步操作)。2.4.5補(bǔ)碼乘法運(yùn)算(l)補(bǔ)碼一位乘法

補(bǔ)碼乘法有多種,常用的有校正法和布斯乘法。其中布斯乘法是由布斯(A.D.Booth)夫婦提出。以定點(diǎn)小數(shù)為例,設(shè)參加運(yùn)算的被乘數(shù)x的補(bǔ)碼為[x]補(bǔ)=x0.x1x2…xn,乘數(shù)y的補(bǔ)碼為[y]補(bǔ)=y0.y1y2…yn,乘積為[z]補(bǔ)=[x×y]補(bǔ)。表2.6補(bǔ)碼一位乘法的操作(2)補(bǔ)碼兩位乘法0A

n+1n+2位加法器控制門(mén)0X

n+10Q

n

n+1移位和加控制邏輯計(jì)數(shù)器CGM00,110110右移圖2.10補(bǔ)碼Booth算法運(yùn)算器框圖2.4.6補(bǔ)碼除法運(yùn)算

以補(bǔ)碼一位除法為例,運(yùn)算規(guī)則如表2.8所示,商一般采用末位置1的方法,操作簡(jiǎn)便,表中i=0~n-1。表2.8補(bǔ)碼一位除法

如要提高精度,則按上述規(guī)則多求一位,再采用以下規(guī)則對(duì)商進(jìn)行處理。兩數(shù)能除盡,如果除數(shù)為正,商不必加2-n;如果除數(shù)為負(fù),商加2-n。兩數(shù)除不盡,如果商為正,商不必加2-n;如果商為負(fù),商加2-n。2.4.7移位運(yùn)算(1)算術(shù)移位

必須注意的是:不論是正數(shù)還是負(fù)數(shù),移位后其符號(hào)位均不變,這是算術(shù)移位的重要特點(diǎn)。表2.9不同碼制機(jī)器數(shù)移位后的空位添補(bǔ)規(guī)則

分析任意負(fù)數(shù)的補(bǔ)碼可發(fā)現(xiàn),當(dāng)對(duì)其由低位向高位找到第一個(gè)“1”時(shí),在此“1”左邊的各位均與對(duì)應(yīng)的反碼相同,而在此“1”右邊的各位(包括此“1”在內(nèi))均與對(duì)應(yīng)的原碼相同,即添0;右移時(shí)因空位出現(xiàn)在高位,則添補(bǔ)的代碼應(yīng)與反碼相同,即添1。(2)邏輯移位

無(wú)符號(hào)數(shù)的移位稱為邏輯移位。邏輯移位的規(guī)則是:邏輯左移時(shí),高位移出,低位添0;邏輯右移時(shí),低位移出,高位添0。圖2.11常見(jiàn)的算術(shù)移位和邏輯移位

7/150CF循環(huán)右移

7/150CF帶進(jìn)位循環(huán)左移←

7/150CF帶進(jìn)位循環(huán)右移→7/150CF循環(huán)左移

7/150←0←CF邏輯左移/算術(shù)左移

7/150CF邏輯右移0

7/150CF算術(shù)右移2.4.8運(yùn)算器的基本結(jié)構(gòu)(1)半加器

半加器完成兩個(gè)一位二進(jìn)制數(shù)相加。若只考慮兩個(gè)加數(shù)本身,而不考慮來(lái)自相鄰低位的進(jìn)位,稱為半加。表2.12半加器真值表圖2.12半加器電路圖及符號(hào)由真值表可得出半加器的邏輯表達(dá)式:

(2)一位全加器加法運(yùn)算:Ai+Bi+Ci=Si(Ci+1)一位全加器真值表如表2.13所示。邏輯方程:Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi表2.13一位全加器真值表圖2.13一位全加器邏輯符號(hào)與邏輯電路(3)n位的行波進(jìn)位加減器

n個(gè)1位的全加器可級(jí)聯(lián)成一個(gè)n位的行波進(jìn)位加減器(串行進(jìn)位補(bǔ)碼加法/減法器)。圖2.14n位的行波進(jìn)位加減器(4)先行(超前)進(jìn)位加法器4位先行進(jìn)位加法器遞推公式:(5)運(yùn)算器的結(jié)構(gòu)設(shè)計(jì)圖2.16單總線結(jié)構(gòu)的運(yùn)算器圖2.17雙總線結(jié)構(gòu)的運(yùn)算器圖2.18三總線結(jié)構(gòu)的運(yùn)算器2.5.1浮點(diǎn)表示(1)浮點(diǎn)數(shù)的表示形式

浮點(diǎn)數(shù)在機(jī)器中的形式如圖所示。采用這種數(shù)據(jù)格式的機(jī)器稱為浮點(diǎn)機(jī)。圖2.19浮點(diǎn)數(shù)的表示形式2.5浮點(diǎn)數(shù)與浮點(diǎn)運(yùn)算

圖2.20浮點(diǎn)數(shù)在數(shù)軸上的表示范圍(3)浮點(diǎn)數(shù)的規(guī)格化

當(dāng)基數(shù)為2時(shí),尾數(shù)最高位為l的數(shù)為規(guī)格化數(shù)。規(guī)格化時(shí),尾數(shù)左移一位,階碼減1(這種規(guī)格化稱為向左規(guī)格化,簡(jiǎn)稱左規(guī));尾數(shù)右移一位,階碼加1(這種規(guī)格化稱為向右規(guī)格化,簡(jiǎn)稱右規(guī))。2.5.2IEEE754浮點(diǎn)數(shù)標(biāo)準(zhǔn)

IEEE754標(biāo)準(zhǔn)(1985),每個(gè)浮點(diǎn)數(shù)均由三部分組成:符號(hào)位S、指數(shù)部分E和尾數(shù)部分M,如圖所示。圖2.21IEEE754標(biāo)準(zhǔn)(1)IEEE754標(biāo)準(zhǔn)32位單精度浮點(diǎn)數(shù)圖2.22IEEE754標(biāo)準(zhǔn)32位單精度浮點(diǎn)數(shù)表示格式(2)IEE754標(biāo)準(zhǔn)64位雙精度浮點(diǎn)數(shù)N=圖2.23IEEE754標(biāo)準(zhǔn)64位雙精度浮點(diǎn)數(shù)表示格式64位雙精度浮點(diǎn)數(shù)所表示的數(shù)值N為:

2.5.3浮點(diǎn)加減運(yùn)算

兩浮點(diǎn)數(shù)X,Y進(jìn)行加減運(yùn)算時(shí),必須按以下幾步執(zhí)行:(1)對(duì)階,(2)尾數(shù)運(yùn)算,(3)結(jié)果規(guī)格化,(4)舍入處理,(5)溢出判斷。

注意:定點(diǎn)數(shù)的表示范圍是連續(xù)的,而浮點(diǎn)數(shù)的表示范圍可能是不連續(xù)的。浮點(diǎn)數(shù)表示范圍定點(diǎn)數(shù)表示范圍2.5.4浮點(diǎn)乘除運(yùn)算

兩浮點(diǎn)數(shù)進(jìn)行乘法和除法的運(yùn)算規(guī)則是:x×y=2Ex+Ey(Mx×My)x÷y=2Ex-Ey(Mx÷My)

完成浮點(diǎn)加減運(yùn)算的操作過(guò)程大體分為四步:0操作數(shù)的檢查。階碼加/減操作:運(yùn)算時(shí)必須檢查結(jié)果是否溢出。尾數(shù)乘/除操作。結(jié)果規(guī)格化并進(jìn)行舍入處理。X5Y5Z52.5.5浮點(diǎn)運(yùn)算流水線圖2.26浮點(diǎn)向量加法流水線2.6.1BCD碼的格式2.6BCD碼(binarycodeddecimal)十進(jìn)制編碼0123456789權(quán)8421碼00000001001000110100010101100111100010018421余3碼00110100010101100111100010011010101111002421碼(A)000000010010001101000101011001111110111124212421碼(B)00000001001000110100101111001101111011115211碼0000000101000101011110001001110011011111余3循環(huán)碼0010011001110101010011001101111111101010242152112.6.2BCD碼加減法

可以在二進(jìn)制加法器的基礎(chǔ)上加上適當(dāng)?shù)摹靶U边壿媮?lái)實(shí)現(xiàn),該校正邏輯可將二進(jìn)制的“和”改變成所要求的十進(jìn)制格式。2.6.3BCD碼乘除法

在BCD碼中,乘數(shù)的每一位可能為0~9中的任何一個(gè)數(shù),因此每次循環(huán)迭代最多可能要執(zhí)行9次加法。因此,在算法中要增加一個(gè)內(nèi)循環(huán)來(lái)實(shí)現(xiàn)多次加法。

二進(jìn)制數(shù)的每一位為1位,而B(niǎo)CD碼每一位為4位。因此,在移位時(shí)要進(jìn)行相應(yīng)的修改。由每次移1位修改為每次移1位BCD碼數(shù)字,即每次移4位,可以稱之為十制移位。另外,BCD乘法中每次循環(huán)可能執(zhí)行多次加法,因此進(jìn)位可能大于1,因此進(jìn)位位采用1位BCD碼數(shù)而不是1位二進(jìn)制數(shù)。2.7.1碼距與數(shù)據(jù)校驗(yàn)碼

數(shù)據(jù)校驗(yàn)碼(Error-DetectingCode,ECC)是具有檢測(cè)錯(cuò)誤或自動(dòng)糾正錯(cuò)誤能力的一種數(shù)據(jù)編碼。

編碼距離(codedistance)或海明距離(hammingdistance),通常指一組編碼中任意兩個(gè)編碼之間不同代碼的位數(shù)。最小碼距(minimumcodedistance)是指在一組編碼中任意兩個(gè)編碼之間的最小距離。

碼距與校驗(yàn)碼的檢錯(cuò)和糾錯(cuò)能力的關(guān)系是:d≥e+1,可檢測(cè)e個(gè)錯(cuò)。d≥2t

+1,可糾正t個(gè)錯(cuò)。d≥e+t

+1,且e>t,可檢測(cè)e個(gè)錯(cuò)并能糾正t個(gè)錯(cuò)。2.7數(shù)據(jù)校驗(yàn)碼2.7.2奇偶校驗(yàn)碼奇校驗(yàn)(OddECC):使n+1位的奇偶校驗(yàn)碼中有奇數(shù)個(gè)1。偶校驗(yàn)(EvenECC):使n+1位的奇偶校驗(yàn)碼中有偶數(shù)個(gè)1。(1)奇偶校驗(yàn)碼的編碼方法圖2.29校驗(yàn)位P的形成電路+++++++D7D6D5D4D3D2D1D0p(2)奇偶校驗(yàn)碼的校驗(yàn)

采用奇偶校驗(yàn)的編碼在傳輸過(guò)程中需要進(jìn)行奇偶校驗(yàn),以判斷信息傳輸是否出錯(cuò)。如果接收方接收到一奇校驗(yàn)碼中1的個(gè)數(shù)為偶數(shù),或接收到一偶校驗(yàn)碼中1的個(gè)數(shù)為奇數(shù),則表示接收到的編碼中有一位出錯(cuò)。

以前面的9位奇偶校驗(yàn)碼為例進(jìn)行說(shuō)明。出現(xiàn)偶校驗(yàn)錯(cuò)的標(biāo)志是:進(jìn)行奇偶校驗(yàn)時(shí),E=0,表示無(wú)錯(cuò);E=1,表示校驗(yàn)出錯(cuò)。2.7.3循環(huán)冗余校驗(yàn)碼

循環(huán)冗余校驗(yàn)碼(CyclicRedundancyCheck,CRC)是在n位有效信息位后拼接k位校驗(yàn)位形成的,又稱(n,k)碼。(1)CRC碼的編碼思想

CRC校驗(yàn)采用多項(xiàng)式編碼方法。就是將待編碼的n位有效信息看做是一個(gè)n階的二進(jìn)制多項(xiàng)式M(x)。例如一個(gè)8位二進(jìn)制數(shù)11010011B可以用信息多項(xiàng)式表示為:

再用另一個(gè)約定的多項(xiàng)式G(x)去除M(x),可得到下式所示的關(guān)系:

其中,Q(x)為除得的商數(shù),R(x)為除得的余數(shù)。

(3)CRC碼的編碼方法1)把待編的n位有效信息表示為多項(xiàng)式M(x):其中Ci=0或1,對(duì)應(yīng)n位有效信息中第i位的信息。2)選擇一個(gè)k+1位的生成多項(xiàng)式G(x)作為約定除數(shù):其中

Gi=0或1,對(duì)應(yīng)k+1位的生成多項(xiàng)式中第i位的信息。3)將M(x)左移k位,得到n+k位的M(x)?。然后按模2除法,用M(x)?

除以G(x),得到k位余數(shù)R(x),即:4)將M(x)?

與余數(shù)R(x)做模2加,得:注意,在模2加的條件下,R(x)+R(x)=0。將k位的R(x)拼接到M(x)?

的后k位,就形成了n+k位循環(huán)冗余校驗(yàn)碼。(4)循環(huán)冗余校驗(yàn)的生成多項(xiàng)式任何一位發(fā)生錯(cuò)誤都應(yīng)使余數(shù)不為0。不同位發(fā)生錯(cuò)誤應(yīng)當(dāng)使余數(shù)不同。對(duì)余數(shù)做模2除法,應(yīng)能使余數(shù)循環(huán)。在數(shù)據(jù)通信與網(wǎng)絡(luò)中,通常n相當(dāng)大,由一千甚至數(shù)千個(gè)二進(jìn)制數(shù)據(jù)位構(gòu)成一幀,為檢測(cè)信息傳輸?shù)恼_與否,廣泛采用CRC碼進(jìn)行校驗(yàn)。這時(shí)所使用的生成多項(xiàng)式的次冪比較高。2.7.4海明校驗(yàn)碼(1)海明校驗(yàn)碼的編碼思想

如果出錯(cuò)代碼的位置能夠確定,將出錯(cuò)位的內(nèi)容取反,就能夠自動(dòng)糾正錯(cuò)誤。(2)海明校驗(yàn)碼的編碼方法1)將n位有效信息和k位校驗(yàn)位,構(gòu)成n+k位的海明校驗(yàn)碼。圖2.30編碼排列位置2)將k個(gè)校驗(yàn)位分成k組奇偶校驗(yàn),每個(gè)有效信息位都被2個(gè)或2個(gè)以上的校驗(yàn)位校驗(yàn),被校驗(yàn)的位號(hào)等于校驗(yàn)它的校驗(yàn)位位號(hào)之和。3)根據(jù)校驗(yàn)組的分組情況,按奇偶校驗(yàn)原理,由已知的有效信息按奇偶校驗(yàn)規(guī)則求出各個(gè)校驗(yàn)位,形成海明校驗(yàn)碼。(3)海明校驗(yàn)碼的校驗(yàn)

分組校驗(yàn)后,校驗(yàn)結(jié)果形成k位的指誤字EkEk-1...E2E1,若第i組校驗(yàn)結(jié)果正確,指誤字中相應(yīng)位Ei之為0;若第i組校驗(yàn)結(jié)果錯(cuò)誤,指誤字中相應(yīng)位Ei為1。因此若指誤字EkEk-1...E2E1為全0,表示接收方接收到的信息無(wú)錯(cuò);若指誤字EkEk-1...E2E1不為全0,則表示接收方接收到的信息中有錯(cuò),并且指誤EkEk-1...E2E1代碼所對(duì)應(yīng)的十進(jìn)制值就是出錯(cuò)位的位號(hào)。將該位取反,錯(cuò)誤碼即得到自動(dòng)糾正。

當(dāng)然,指誤字能夠正確指示出錯(cuò)位所在位置的前提是代碼中只能有一個(gè)錯(cuò)誤。(4)擴(kuò)展的海明校驗(yàn)碼

可以設(shè)想如果給檢一糾一錯(cuò)的海明校驗(yàn)碼增加一位奇偶校驗(yàn)位,對(duì)其所有代碼進(jìn)行奇偶校驗(yàn)就可以再檢查出一位錯(cuò)誤,實(shí)現(xiàn)檢測(cè)出兩位錯(cuò)誤或者糾正一位錯(cuò)誤的目標(biāo),稱為擴(kuò)展的海明校驗(yàn)碼或檢二糾一錯(cuò)海明校驗(yàn)碼。2.8.1觸發(fā)器2.8時(shí)序邏輯電路

觸發(fā)器可以處理輸入、輸出信號(hào)和時(shí)鐘頻率之間的相互影響。2.8.2寄存器

在CP脈沖作用下,每個(gè)D觸發(fā)器能夠寄存一位二進(jìn)制碼。在D=0時(shí),寄存器儲(chǔ)存為0;在D=1時(shí),寄存器儲(chǔ)存為1。在低電平為0、高電平為1時(shí),需將信號(hào)源與D間連接一反相器,可以完成對(duì)數(shù)據(jù)的儲(chǔ)存。按照移位方向可以分為單向移位寄存器和雙向移位寄存器。2.8.3計(jì)數(shù)器

計(jì)數(shù)器在數(shù)字系統(tǒng)中主要是對(duì)脈沖的個(gè)數(shù)進(jìn)行計(jì)數(shù),以實(shí)現(xiàn)測(cè)量、計(jì)數(shù)和控制的功能,同時(shí)兼有分頻功能。2.9.1三態(tài)電路2.9組合邏輯電路

三態(tài)指其輸出既可以是一般二值邏輯電路,又可以保持特有的高阻抗?fàn)顟B(tài)。高阻態(tài)相當(dāng)于隔斷狀態(tài)(電阻很大,相當(dāng)于開(kāi)路)。2.9.2比較器

對(duì)兩個(gè)或多個(gè)數(shù)據(jù)項(xiàng)進(jìn)行比較,以確定它們是否相等,或確定它們之間的大小關(guān)系及排列順序稱為比較。2.9.3加法器

兩個(gè)二進(jìn)制數(shù)字Ai,Bi和一個(gè)進(jìn)位輸入Ci相加,產(chǎn)生一個(gè)和輸出Si,以及一個(gè)進(jìn)位輸出Ci+1。由真值表2.13可得到輸出邏輯表達(dá)式如式(2.29)所示,進(jìn)一步可得邏輯電路如圖2.13所示。2.9.4編碼器表2.2074LS148編碼器真值表普通編碼器優(yōu)先編碼器輸入輸出EII0I1I2I3I4I5I6I7A2A1A0GSEO1xxxxxxxx11111011111111111100xxxxxxx0000010xxxxxx01001100xxxxx011010100xxxx0111011100xxx01111100100xx011111101100x

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論