第3章 2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第1頁
第3章 2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第2頁
第3章 2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第3頁
第3章 2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第4頁
第3章 2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 3.2.3 定點(diǎn)數(shù)和浮點(diǎn)數(shù) 計(jì)算機(jī)中的兩種表示方式 數(shù)值范圍:一種數(shù)據(jù)類型所能表示的最大值和 最小值 數(shù)據(jù)精度:實(shí)數(shù)所能表示的有效數(shù)字位數(shù)。 數(shù)值范圍和數(shù)據(jù)精度均與使用多少位二進(jìn)制位 數(shù)以及編碼方式有關(guān)。 計(jì)算機(jī)用數(shù)字表示正負(fù),隱含規(guī)定小數(shù)點(diǎn)。 采用“定點(diǎn)”、“浮點(diǎn)”兩種表示形式。 2 1. 數(shù)的定點(diǎn)表示方法 (1). 定點(diǎn)整數(shù)小數(shù)點(diǎn)位置固定在數(shù)的最低位之后 如: Dn-1 Dn-2 D1 D0 . 范圍: 2n-1 -1 -2n-1 (采用字長n=16位補(bǔ)碼時(shí) 其值為32767 -32768) (2). 定點(diǎn)小數(shù)小數(shù)點(diǎn)位置固定在數(shù)的符號位之后、數(shù) 值最高位之前。 如:D0. D-1 D-

2、(n-2) D-(n-1) 范圍:1 - 2-(n-1) -1 (采用字長n=16位時(shí)其值為 32767/32768 -1) 其中n表示字長多少位 3 (1) 浮點(diǎn)數(shù)的表示:是把字長分成階碼和 尾數(shù)兩部分。其根據(jù)就是: J Em-2.E0 S D-1D-(n-1) 階符 階碼值 數(shù)符 . . 尾數(shù)值 S J Em-2 .E0 D-1D-(n-1) 數(shù)符 階符 階碼值 . . 尾數(shù)值 通常,階碼為補(bǔ)碼或移碼定點(diǎn)整數(shù),尾數(shù)為補(bǔ)碼或原碼 定點(diǎn)小數(shù)。 2. 數(shù)的浮點(diǎn)表示方法 J E DX2 4 (2)浮點(diǎn)數(shù)的規(guī)格化 目的:字長固定的情況下提高表示精 度的措施: 1 增加尾數(shù)位數(shù)(但數(shù)值范圍減小) 2

3、采用浮點(diǎn)規(guī)格化形式 5 規(guī)格化方法:調(diào)整階碼使尾數(shù)滿足下列關(guān)系: 尾數(shù)為原碼表示時(shí),無論正負(fù)應(yīng)滿足1/2|d |1 即:小數(shù)點(diǎn)后的第一位數(shù)一定要為1。 正數(shù)的尾數(shù)應(yīng)為0.1x.x 負(fù)數(shù)的尾數(shù)應(yīng)為1.1x.x 尾數(shù)用補(bǔ)碼表示時(shí),小數(shù)最高位應(yīng)與數(shù)符符號位 相反。 正數(shù)應(yīng)滿足 1/2d d -1,即 1.0 x.x 6 例題:設(shè)某機(jī)器用32位表示一個(gè)實(shí)數(shù),階碼部分8位 (含1位階符),用定點(diǎn)整數(shù)補(bǔ)碼表示;尾數(shù)部分24 位(含數(shù)符1位),用規(guī)格化定點(diǎn)小數(shù)補(bǔ)碼表示,基 數(shù)為2。則: 1. 求X=256.5 的第一種浮點(diǎn)表示格式 X=(256. 5)10 =+(100000000.1)2 =+(0.100

4、0000001 x 2+9 )2 8位階碼為:(+9)補(bǔ)=0000 1001 24位尾數(shù)為:(+0.10 0000 0001)補(bǔ) =0.100 0000 0010 0000 0000 0000 所求256.5的浮點(diǎn)表示格式為: 0000 1001 0100 0000 0010 0000 0000 0000 用16進(jìn)制表示此結(jié)果則為:(09402000)16 7 Y=-(256. 5)10 =-(100000000.1)2 =-0.1000000001 x2+9 8位階碼為:(+9)補(bǔ)=0000 1001 24位尾數(shù)為:(-0.10 0000 0001)補(bǔ) =1.011 1111 1110 00

5、00 0000 0000 所求-256.5的浮點(diǎn)表示格式為: 0000 1001 1011 1111 1110 0000 0000 0000 用16進(jìn)制表示此結(jié)果則為:(09BFE000)16 2. 求Y= -256.5 的第一種浮點(diǎn)表示格式 8 (3) 溢出問題 定點(diǎn)數(shù)的溢出根據(jù)數(shù)值本身判斷 浮點(diǎn)數(shù)的溢出根據(jù)規(guī)格化后的階碼判斷 上溢浮點(diǎn)數(shù)階碼大于機(jī)器最大階碼 中斷 下溢浮點(diǎn)數(shù)階碼小于機(jī)器最小階碼 零處理 溢出的具體判斷方法將結(jié)合實(shí)例在后續(xù)課程中介紹 9 3. 微機(jī)中所能表示的數(shù)值類型 (1)無符號二進(jìn)制數(shù)(字節(jié)、字和雙字) (2)帶符號的二進(jìn)制定點(diǎn)整數(shù)形式(16、 32、64位補(bǔ)碼表示)和1

6、8位BCD碼整數(shù)形式 (80bit)。 (3)浮點(diǎn)數(shù)(IEEE754標(biāo)準(zhǔn)) 包括數(shù)符S、 階碼E和尾數(shù)D三個(gè)字段。 10 微機(jī)中的四種整數(shù)類型 整數(shù)類型 數(shù)值范圍 精 度 格 式 16位整數(shù) -3276832767 二進(jìn)制16位 補(bǔ)碼表 示 短整數(shù) -231 231-1 二進(jìn)制32位 補(bǔ)碼表 示 長整數(shù) -263 263-1 二進(jìn)制64位 補(bǔ)碼表 示 BCD整數(shù) -1018+11018-1 十進(jìn)制18位 80個(gè)二 進(jìn)制其中最左面1字節(jié)的最高位是符號位,余7位 無效;另外72位是18位BCD碼,原碼表示。 11 IEEE754標(biāo)準(zhǔn)格式如下 (-1)S 2E (D0.D-1D-(P-1) 最高是數(shù)

7、符S占1位,0表示正、1表示負(fù); 指數(shù)項(xiàng)E,基數(shù)是2,E是一個(gè)帶有一定偏移 量的無符號整數(shù);尾數(shù)部分D,它是一個(gè)帶 有一位整數(shù)位的二進(jìn)制小數(shù)真值形式。其 規(guī)格化形式應(yīng)調(diào)整階碼使其尾數(shù)整數(shù)位D0 為1且與小數(shù)點(diǎn)一起隱含掉。 12 微 機(jī) 中 三 種 不 同 類 型 浮 點(diǎn) 數(shù) 的 格 式 參 數(shù) 單 精 度 雙 精 度 擴(kuò) 展 精 度 浮 點(diǎn) 數(shù) 長 度 ( 位 ) 32 64 80 符 號 位 數(shù) 1 1 1 尾 數(shù) 長 度P(位 ) 23+1( 隱 ) 52+1( 隱 ) 64 階 碼E長 度 ( 位 ) 8 11 15 最 大 階 碼 +127 +1023 +16383 最 小 階 碼 -

8、126 -1022 -16382 階 碼 偏 移 量 +127 +1023 +16383 表 示 數(shù) 范 圍 10 -38 10 +38 10 -308 10 +308 13 微機(jī)中浮點(diǎn)數(shù)表示成規(guī)格化形式,如下圖所示: 單精度 31 30 23 22 0 符號位 階 碼 尾數(shù)有效 位 1 雙精度 63 62 52 51 0 符號位 階 碼 尾數(shù)有效位 1 擴(kuò)展精度 79 78 64 63 0 符號位 階 碼 尾數(shù)有效位 微機(jī)中浮點(diǎn)數(shù)的三種表示形式 14 例如將十進(jìn)制數(shù)178.125表示成微 機(jī)中的單精度浮點(diǎn)數(shù) 解:178.125=10110010.001B =1.0110010001x27 指

9、數(shù)E=7+127=134=10000110B 127是單精度浮點(diǎn)數(shù)應(yīng)加的指數(shù)偏移量,其完整的 浮點(diǎn)數(shù)形式為 : 0 10000110 011 0010 0010 0000 0000 0000 = 43322000H 15 例:將下面Pentium機(jī)中的單精度浮點(diǎn)數(shù) 表示成十進(jìn)制真值是多少? 0011 ,1111,0101,1000,0000,0000,0000,0000 數(shù)符:S=(-1) 0=1 (正號) 階碼: E=(01111110)2-127=126-127= -1 尾數(shù): D=(1.1011)2 X= 1.1011x2-1= (0.11011)2=0.84375 16 3.2.4 數(shù)

10、字化信息的編碼及表 示 計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理和運(yùn)算,就必須首先實(shí) 現(xiàn)數(shù)字化表達(dá)。 另外由于計(jì)算機(jī)除了數(shù)據(jù)處理和運(yùn)算外,還 要進(jìn)行各種文字(特別是中文)的處理與編輯。因 此,所有由計(jì)算機(jī)處理的信息也要用數(shù)字進(jìn)行編 碼。這樣在物理機(jī)制上可以以數(shù)字信號表示. 17 信息的數(shù)字化表示形式 數(shù)字信號:是一種在時(shí)間上或空間上離散的 信號,單個(gè)信號是常用的二值邏輯(0或1),依 靠多位信號組合表示廣泛的信息. 18 1.用一串脈沖信號表示數(shù)字代碼 (先發(fā)低位后發(fā)高位為例) 1 0 1 1 0 t U 19 2.用一組電平信號表示數(shù)字代碼 0t U 1 0t U 1 0t U 0 0t U 1 20 3.用一組

11、數(shù)字代碼表示字符(如ASCII碼) 4.用若干點(diǎn)的組合表示圖像 (如圖形點(diǎn)陣碼) 5.用數(shù)字信號表示聲音 (如VCD DVD光盤) 6.用數(shù)字代碼表示命令與狀態(tài) 21 數(shù)字化方法表示信息的優(yōu)點(diǎn): 抗干擾能力強(qiáng),可靠性高; 位數(shù)增多則數(shù)的表示范圍可擴(kuò)大; 物理上容易實(shí)現(xiàn),并可存儲; 表示信息的范圍與類型極其廣泛; 能用邏輯代數(shù)等數(shù)字邏輯技術(shù)進(jìn)行處理. 22 3.3 二進(jìn)制乘法運(yùn)算 1.軟件編程方法實(shí)現(xiàn)軟件編程方法實(shí)現(xiàn)(時(shí)序控制乘法器)時(shí)序控制乘法器) 由手算到機(jī)器實(shí)現(xiàn),要解決三個(gè)問題:符號問題、由手算到機(jī)器實(shí)現(xiàn),要解決三個(gè)問題:符號問題、 部分積相加進(jìn)位問題、移位問題。部分積相加進(jìn)位問題、移位問

12、題。 原碼乘法是先取絕對值相乘,再根據(jù)同號相乘為原碼乘法是先取絕對值相乘,再根據(jù)同號相乘為 正、異號相乘位負(fù),單獨(dú)決定符號位。補(bǔ)碼乘法則讓正、異號相乘位負(fù),單獨(dú)決定符號位。補(bǔ)碼乘法則讓 符號位直接參加運(yùn)算,算法將會復(fù)雜一些。符號位直接參加運(yùn)算,算法將會復(fù)雜一些。 2.硬件快速乘法器實(shí)現(xiàn)硬件快速乘法器實(shí)現(xiàn) 利用中大規(guī)模集成電路芯片,在一拍節(jié)中實(shí)現(xiàn)多項(xiàng)利用中大規(guī)模集成電路芯片,在一拍節(jié)中實(shí)現(xiàn)多項(xiàng) 部分積的相加,成為陣列乘法器。部分積的相加,成為陣列乘法器。 23 3.3.1 定點(diǎn)數(shù)一位乘法定點(diǎn)數(shù)一位乘法 1. 定點(diǎn)原碼一位乘定點(diǎn)原碼一位乘 規(guī)則規(guī)則:在機(jī)器中采用在機(jī)器中采用A,B,C寄存器來分別存

13、放部分積,被乘寄存器來分別存放部分積,被乘 數(shù)和乘數(shù)數(shù)和乘數(shù) (1)在機(jī)器內(nèi)一次加法操作只能求出兩數(shù)之和,因此)在機(jī)器內(nèi)一次加法操作只能求出兩數(shù)之和,因此 每求得一個(gè)相加數(shù)時(shí),就得與上次部分積相加。每求得一個(gè)相加數(shù)時(shí),就得與上次部分積相加。 (2)人工計(jì)算時(shí),相加數(shù)逐次向左偏移一位,由于最)人工計(jì)算時(shí),相加數(shù)逐次向左偏移一位,由于最 后的乘積位數(shù)是乘數(shù)(或被乘數(shù))的兩倍后的乘積位數(shù)是乘數(shù)(或被乘數(shù))的兩倍.由于在求本由于在求本 次部分積時(shí),前一次部分積的最低位,不再參與運(yùn)算,次部分積時(shí),前一次部分積的最低位,不再參與運(yùn)算, 因此可將其右移一位。相加數(shù)可直送而不必偏移,于是因此可將其右移一位。相

14、加數(shù)可直送而不必偏移,于是 用用N位加法器就可實(shí)現(xiàn)兩個(gè)位加法器就可實(shí)現(xiàn)兩個(gè)N位數(shù)相乘。位數(shù)相乘。 (3)部分積右移時(shí)乘數(shù)寄存器同時(shí)右移一位,這樣可)部分積右移時(shí)乘數(shù)寄存器同時(shí)右移一位,這樣可 以用乘數(shù)寄存器的最低位來控制相加數(shù)(取被乘數(shù)或以用乘數(shù)寄存器的最低位來控制相加數(shù)(取被乘數(shù)或 零),同時(shí)乘數(shù)寄存器的最高位可接收部分積右移出來零),同時(shí)乘數(shù)寄存器的最高位可接收部分積右移出來 的一位,因此,完成乘法運(yùn)算后,的一位,因此,完成乘法運(yùn)算后,A寄存器中保存乘積寄存器中保存乘積 的高位部分,乘數(shù)寄存器的高位部分,乘數(shù)寄存器C中保存乘積的低位部分。中保存乘積的低位部分。 24 例例:設(shè)設(shè)X=0.11

15、01,Y=0.1011,求求XY. 其中寄存器其中寄存器B=X ,Cd=4.流程圖流程圖3.6 計(jì)算過程如下計(jì)算過程如下: 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 +x 右移一位 +x 右移一位 +0 右移一位 +x 右移一位 部分積 A 乘數(shù) C

16、 乘積高位 乘積低位 1(丟失) 1(丟失) 0(丟失) 1(丟失) XY=0.10001111 25 注意:注意: 兩操作數(shù)的絕對值相乘,兩操作數(shù)的絕對值相乘, 符號位單符號位單 獨(dú)處理。獨(dú)處理。 寄存器寄存器A.B均設(shè)置雙符號位,第均設(shè)置雙符號位,第1符符 號位始終是部分積符號,決定在右號位始終是部分積符號,決定在右 移時(shí)第移時(shí)第1符號位補(bǔ)符號位補(bǔ)0 操作步數(shù)由乘數(shù)的尾數(shù)位數(shù)決定,操作步數(shù)由乘數(shù)的尾數(shù)位數(shù)決定, 用計(jì)數(shù)器用計(jì)數(shù)器Cd來計(jì)數(shù)。即作來計(jì)數(shù)。即作n次累加次累加 和移位。和移位。 最后是加符號位,根據(jù)最后是加符號位,根據(jù)Sx Sy決定。決定。 26 2.定點(diǎn)補(bǔ)碼一位乘法定點(diǎn)補(bǔ)碼一位

17、乘法 實(shí)現(xiàn)補(bǔ)碼乘法有兩種方法,現(xiàn)在廣泛使用的是實(shí)現(xiàn)補(bǔ)碼乘法有兩種方法,現(xiàn)在廣泛使用的是 Booth算法,也稱為比較法。這種方法在機(jī)器實(shí)算法,也稱為比較法。這種方法在機(jī)器實(shí) 現(xiàn)中要在乘數(shù)末位現(xiàn)中要在乘數(shù)末位Yi之后再增加一個(gè)附加位之后再增加一個(gè)附加位Yi+1, 并令其初始值為并令其初始值為0。然后根據(jù)比較。然后根據(jù)比較Yi、 Yi+1的值決的值決 定下一步操作,規(guī)則如下:定下一步操作,規(guī)則如下:(部分積初始為部分積初始為0) Yi Yi+1 操操 作作 0 0 原部分積右移一位原部分積右移一位 0 1 原部分積加原部分積加X補(bǔ)補(bǔ)后再右移一位后再右移一位 1 0 原部分積加原部分積加-X補(bǔ)補(bǔ)后再右

18、移一位后再右移一位 1 1 原部分積右移一位原部分積右移一位 27 例例3.35:設(shè)設(shè)X=-0.1101,Y=0.1011,即即X補(bǔ)補(bǔ)=11.0011,Y補(bǔ)補(bǔ)=0.1011 ,-X=00.1101 求求 XY補(bǔ)補(bǔ). 計(jì)算過程如下計(jì)算過程如下:0 0 0 0 0 0 0. 1 0 1 1 0 初始值,最后一位補(bǔ)0 0 0 1 1 0 1 Y5Y4=01 +-X補(bǔ) 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 右移一位 0 0 0 0 0 0 Y4Y3=11 +0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 右移一位 1 1 0 0 1 1 Y

19、3Y2=10 +X補(bǔ) 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 右移一位 0 0 1 1 0 1 Y2Y1=01 +-X補(bǔ) 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 右移一位 1 1 0 0 1 1 Y1Y0=10 +X補(bǔ) 1 1 0 1 1 1 0 0 0 1 + + + + + 部分積 乘數(shù)Y Yi Yi+1 說明 乘積高位 乘積低位 XY補(bǔ)=1.01110001, XY=-0.10001111 28 初始值與符號位:初始值與符號位:A寄存器存放部分累加和,寄存器存放部分累加和, 初始為初始為0,采用雙符號位。第,采用雙符號位。第

20、1符號位指示累符號位指示累 加和的正負(fù),以控制右移時(shí)補(bǔ)加和的正負(fù),以控制右移時(shí)補(bǔ)0或補(bǔ)或補(bǔ)1。B中中 存放被乘數(shù)的補(bǔ)碼,雙符號位。存放被乘數(shù)的補(bǔ)碼,雙符號位。 基本操作:用基本操作:用C寄存器最末兩位作判斷位,寄存器最末兩位作判斷位, 決定下一步的操作。決定下一步的操作。 移位移位:在右移時(shí),第在右移時(shí),第2符號位值移入位數(shù)的最符號位值移入位數(shù)的最 高位,第高位,第1符號位值不變且移入第符號位值不變且移入第2符號位,符號位, 而而A寄存器末位移入寄存器末位移入C寄存器。寄存器。 步數(shù)與最后一步操作步數(shù)與最后一步操作:乘數(shù)有效位是乘數(shù)有效位是4位,共位,共 作作5步。注意,最后一步不移位因?yàn)檫@一

21、步步。注意,最后一步不移位因?yàn)檫@一步 是用來處理符號位的。是用來處理符號位的。 29 3.4.1 定點(diǎn)除法運(yùn)算 1.定點(diǎn)原碼一位除法定點(diǎn)原碼一位除法 有恢復(fù)余數(shù)法和不恢復(fù)余數(shù)法(加減交替法),計(jì)算機(jī)中常用有恢復(fù)余數(shù)法和不恢復(fù)余數(shù)法(加減交替法),計(jì)算機(jī)中常用 后者。因?yàn)樗牟僮鞑襟E少,而且也不復(fù)雜。其處理思想是:先后者。因?yàn)樗牟僮鞑襟E少,而且也不復(fù)雜。其處理思想是:先 減后判,如減后發(fā)現(xiàn)不夠減,則在下一步改作加除數(shù)操作。這樣減后判,如減后發(fā)現(xiàn)不夠減,則在下一步改作加除數(shù)操作。這樣 操作步驟固定易于編程。其要點(diǎn)如下:操作步驟固定易于編程。其要點(diǎn)如下: (1)要求被除數(shù)要求被除數(shù)|X|除數(shù)除數(shù)|

22、Y|,并取原碼尾數(shù)的絕對值相除;符號并取原碼尾數(shù)的絕對值相除;符號 位單獨(dú)處理,商的符號為相除兩數(shù)符號的半加和。位單獨(dú)處理,商的符號為相除兩數(shù)符號的半加和。 (2)被除數(shù)的位數(shù)可以是除數(shù)的兩倍,其低位的數(shù)值部分開)被除數(shù)的位數(shù)可以是除數(shù)的兩倍,其低位的數(shù)值部分開 始時(shí)放在商寄存器中。運(yùn)算中,放被除數(shù)和商的始時(shí)放在商寄存器中。運(yùn)算中,放被除數(shù)和商的A、C寄存器同寄存器同 時(shí)移位,并將商寄存器時(shí)移位,并將商寄存器C中最高位移到被除數(shù)寄存器中最高位移到被除數(shù)寄存器A的最低位的最低位 中。中。 (3)每步操作后,可根據(jù)余數(shù))每步操作后,可根據(jù)余數(shù)Ri符號來判斷是否夠減:符號來判斷是否夠減:Ri位位 正

23、表明夠減,上商正表明夠減,上商Q為為1。Ri為負(fù)表明不夠減,上商為負(fù)表明不夠減,上商Q為為0。 (4)基本操作可用通式描述為:)基本操作可用通式描述為:Ri=2Ri+(1-2Qi)Y (5原碼除的思想是先當(dāng)成正數(shù)相除,若最后一步所得余數(shù)為原碼除的思想是先當(dāng)成正數(shù)相除,若最后一步所得余數(shù)為 負(fù),則應(yīng)恢復(fù)余數(shù),但不移位,以保持負(fù),則應(yīng)恢復(fù)余數(shù),但不移位,以保持Ri為正。為正。 舉例如下:舉例如下: 30 例例3.39:設(shè)被乘數(shù)設(shè)被乘數(shù)X=0.1011,Y=0.1101,用加減交替法求用加減交替法求X/Y. -Y補(bǔ)補(bǔ)=11.0011, 計(jì)算過程如下計(jì)算過程如下: 0 0 1 0 1 1 0 0 0

24、0 0 開始情形 1 1 0 0 1 1 +-Y補(bǔ) 1 1 1 1 1 0 0 0 0 0 0 不夠減,商上0 1 1 1 1 0 0 0 0 0 0 0 左移 0 0 1 1 0 1 +Y 0 0 1 0 0 1 0 0 0 0 1 夠減,商上1 0 1 0 0 1 0 0 0 0 1 0 左移 1 1 0 0 1 1 +-Y補(bǔ) 0 0 0 1 0 1 0 0 0 1 1 夠減,商上1 0 0 1 0 1 0 0 0 1 1 0 左移 1 1 0 0 1 1 +-Y補(bǔ) 1 1 1 1 0 1 0 0 1 1 0 不夠減,商上0 1 1 1 0 1 0 0 1 1 0 0 左移 0 0 1 1

25、 0 1 +Y 0 0 0 1 1 1 0 1 1 0 1 夠減,商上1 +) +) +) +) +) 被除數(shù)(余數(shù)R) (被除數(shù))(商) 操作說明 余數(shù) 商 X/Y=0.1101, 余數(shù)=0.0111 31 A寄存器中開始時(shí)存放被除數(shù)的絕對值,以后將存寄存器中開始時(shí)存放被除數(shù)的絕對值,以后將存 放各次余數(shù),取雙符號位。放各次余數(shù),取雙符號位。B寄存器存放除數(shù)的絕寄存器存放除數(shù)的絕 對值,取雙符號位。對值,取雙符號位。C寄存器同來存放商,取單符寄存器同來存放商,取單符 號位。號位。 第一步操作:將被除數(shù)第一步操作:將被除數(shù)X視為初始余數(shù)視為初始余數(shù)R0,根據(jù)根據(jù)R0符符 號位正(絕對值),令商

26、符為號位正(絕對值),令商符為0,正是的商符以后,正是的商符以后 再置入。第一步為再置入。第一步為-Y。 商值則根據(jù)余數(shù)商值則根據(jù)余數(shù)R0的符號來決定,正則商上的符號來決定,正則商上1,求,求 下一位商的辦法是余數(shù)左移一位再減去除數(shù);當(dāng)余下一位商的辦法是余數(shù)左移一位再減去除數(shù);當(dāng)余 數(shù)為負(fù)則商上數(shù)為負(fù)則商上0,求下一位商的辦法是余數(shù)左移一,求下一位商的辦法是余數(shù)左移一 位再加上除數(shù)。左移位時(shí)末位補(bǔ)位再加上除數(shù)。左移位時(shí)末位補(bǔ)0。 操作步數(shù)與最后一步操作:如果要求得操作步數(shù)與最后一步操作:如果要求得n位商(不位商(不 含符號位),則需作含符號位),則需作n步步“左移左移-加減加減”循環(huán);若第循環(huán)

27、;若第 n步余數(shù)為負(fù),則需增加一步恢復(fù)余數(shù),這增加的步余數(shù)為負(fù),則需增加一步恢復(fù)余數(shù),這增加的 一步不移位。一步不移位。 32 2.定點(diǎn)補(bǔ)碼一位除法(加減交替法) 補(bǔ)碼除法規(guī)則表:補(bǔ)碼除法規(guī)則表:X補(bǔ)、補(bǔ)、Y補(bǔ)、補(bǔ)、r補(bǔ)補(bǔ)分別為被除數(shù)、除數(shù)和余分別為被除數(shù)、除數(shù)和余 數(shù)數(shù) X補(bǔ)Y補(bǔ) 數(shù) 符 商符第一步 操作 r補(bǔ) Y補(bǔ) 數(shù) 符 上商 下一步操作 同號 0 減法同號(夠減) 異號(不夠減) 1 0 2ri補(bǔ)-Y補(bǔ) 2ri補(bǔ)+Y補(bǔ) 異號 1 加法同號(不夠減) 異號(夠減) 1 0 2ri補(bǔ)-Y補(bǔ) 2ri補(bǔ)+Y補(bǔ) 33 以上是在以上是在|X|Y|即不溢出的前提下;即不溢出的前提下; (1)第一步如

28、果被除數(shù)與除數(shù)同號,用被除數(shù)減去除數(shù);)第一步如果被除數(shù)與除數(shù)同號,用被除數(shù)減去除數(shù); 若兩數(shù)異號,用被除數(shù)加上除數(shù)。如果所得余數(shù)與除數(shù)若兩數(shù)異號,用被除數(shù)加上除數(shù)。如果所得余數(shù)與除數(shù) 同號上商同號上商1,若余數(shù)與除數(shù)異號,上商,若余數(shù)與除數(shù)異號,上商0,該商即為結(jié)果,該商即為結(jié)果 的符號位。的符號位。 (2)求商的數(shù)值部分)求商的數(shù)值部分 如果上次上商如果上次上商1,將余數(shù)左移一位,將余數(shù)左移一位 后減去除數(shù);如果上次上商后減去除數(shù);如果上次上商0,將余數(shù)左移一位后加上,將余數(shù)左移一位后加上 除數(shù)。然后判斷本次操作后的余數(shù),如果余數(shù)與除數(shù)同除數(shù)。然后判斷本次操作后的余數(shù),如果余數(shù)與除數(shù)同 號

29、上商號上商1;若余數(shù)與除數(shù)異號上商;若余數(shù)與除數(shù)異號上商0。如此重復(fù)執(zhí)行。如此重復(fù)執(zhí)行 n-l次(設(shè)數(shù)值部分有次(設(shè)數(shù)值部分有n位)。位)。 (3)商的最后一位一般采用恒置)商的最后一位一般采用恒置1的辦法,井省略了最的辦法,井省略了最 低位低位+1的操作,此時(shí)最大誤差為士的操作,此時(shí)最大誤差為士2-n.如果對商的精度如果對商的精度 要求較高則可按規(guī)則(要求較高則可按規(guī)則(2)再進(jìn)行一次操作以求得商的)再進(jìn)行一次操作以求得商的 第第n位。當(dāng)除不盡時(shí)若商為負(fù),要在商的最低一位加位。當(dāng)除不盡時(shí)若商為負(fù),要在商的最低一位加 1, 使商從反碼值轉(zhuǎn)變成補(bǔ)碼值使商從反碼值轉(zhuǎn)變成補(bǔ)碼值;若商為正最低位不需要

30、加若商為正最低位不需要加1。 34 例例3.40:設(shè)設(shè)X補(bǔ)補(bǔ)=1.0111,Y補(bǔ)補(bǔ)=0.1101,求求X/Y補(bǔ)補(bǔ). -Y補(bǔ)補(bǔ)=11.0011,計(jì)算過程如下計(jì)算過程如下: X/Y補(bǔ)=1.0101 1 1 0 1 1 1 0 0 0 0 0 開始情形 0 0 1 1 0 1 兩數(shù)異號+Y補(bǔ) ?書 0 0 0 1 0 0 0 0 0 0 1 余數(shù)與除數(shù)同號,商上1 0 0 1 0 0 0 0 0 0 1 0 左移 1 1 0 0 1 1 上次商1,+-Y補(bǔ) 1 1 1 0 1 1 0 0 0 1 0 余數(shù)與除數(shù)異號,商上0 1 1 0 1 1 0 0 0 1 0 0 左移 0 0 1 1 0 1 上

31、次商0,+-Y補(bǔ) 0 0 0 0 1 1 0 0 1 0 1 余數(shù)與除數(shù)同號,商上1 0 0 0 1 1 0 0 1 0 1 0 左移 1 1 0 0 1 1 上次商1, +-Y補(bǔ) 1 1 1 0 0 1 0 1 0 1 0 余數(shù)與除數(shù)異號,商上0 1 1 0 0 1 0 1 0 1 0 1 左移,商的最低位恒置1 +) +) +) +) 被除數(shù)(余數(shù)) 商 操作說明 余數(shù) 商 35 例例3.40最低位恒置最低位恒置1,余數(shù)不正確。,余數(shù)不正確。 A寄存器存放被除數(shù)(補(bǔ)碼),以后存放余數(shù),寄存器存放被除數(shù)(補(bǔ)碼),以后存放余數(shù), 取雙符號位。取雙符號位。B寄存器存放除數(shù)(補(bǔ)碼),雙寄存器存放除

32、數(shù)(補(bǔ)碼),雙 符號位。符號位。C寄存器存放商,初始值為寄存器存放商,初始值為0(未考(未考 慮商符之前),單符號位。慮商符之前),單符號位。 如余數(shù)為如余數(shù)為0,則表示除盡。例,則表示除盡。例3.41如采用商的如采用商的 最低位恒置最低位恒置1的方法,其誤差為的方法,其誤差為2-n=2-4。 補(bǔ)碼除法規(guī)則表補(bǔ)充說明:補(bǔ)碼除法規(guī)則表補(bǔ)充說明:1、表中、表中i=0n-1. 2、上采用末位恒置、上采用末位恒置1的方法,操作簡便。如的方法,操作簡便。如 要提高精度,則要提高精度,則按上述規(guī)則要提高精度,則要提高精度,則按上述規(guī)則 多求一位,再采用以下方法對商進(jìn)行處理:多求一位,再采用以下方法對商進(jìn)行

33、處理:兩兩 數(shù)能除盡時(shí),如除數(shù)為正,商不必加數(shù)能除盡時(shí),如除數(shù)為正,商不必加2-n, 如除數(shù)為負(fù),商加如除數(shù)為負(fù),商加2- n; ;兩數(shù)除不盡時(shí),如商為正,商不必加兩數(shù)除不盡時(shí),如商為正,商不必加2-n, 如商為負(fù),商加如商為負(fù),商加 2-n 。 36 例例3.42 X補(bǔ)補(bǔ)=1.0111, Y補(bǔ)補(bǔ)=1.0011, 則則-Y補(bǔ)補(bǔ) =0.1101。求。求X/Y補(bǔ)補(bǔ)=? 被除數(shù)(余數(shù))被除數(shù)(余數(shù)) 商商 操作說明操作說明 11。0111 + 00。1101 兩數(shù)同號,+-Y補(bǔ) 00。0100 0 余數(shù)與除數(shù)異號, 商0 左移 00。1000 + 11。0011 +Y補(bǔ) 11。1011 01 同號,

34、商1 左移 11。0110 + 00。1101 +-Y補(bǔ) 00。0011 010 異號,商0 左移 00。0110 + 11。0011 +Y補(bǔ) 11。1001 0101 同號,商1 左移 11。0010 + 00。1101 +-Y補(bǔ) 11。1111 01011 同號,商1 X/Y補(bǔ)=0.1011 余數(shù)補(bǔ)=1。1111x2-4 37 3.5 浮點(diǎn)數(shù)的運(yùn)算方法 浮點(diǎn)數(shù)的表示形式(以浮點(diǎn)數(shù)的表示形式(以2為底):為底): N = M 2E 其中,其中,M為浮點(diǎn)數(shù)的尾數(shù),一般為絕對值小于為浮點(diǎn)數(shù)的尾數(shù),一般為絕對值小于1的的 規(guī)格化二進(jìn)制小數(shù)用原碼或補(bǔ)碼形式表示;規(guī)格化二進(jìn)制小數(shù)用原碼或補(bǔ)碼形式表示;

35、E 為浮點(diǎn)數(shù)的階碼,一般是用移碼或補(bǔ)碼表示的為浮點(diǎn)數(shù)的階碼,一般是用移碼或補(bǔ)碼表示的 整數(shù)。整數(shù)。 階碼的底除了階碼的底除了2以外,還有用以外,還有用8或或16表示表示 的,這里先以的,這里先以2為底進(jìn)行討論。然后再簡介以為底進(jìn)行討論。然后再簡介以8 或或16為底的數(shù)的運(yùn)算。為底的數(shù)的運(yùn)算。 38 1. 加、減法運(yùn)算 兩數(shù)首先均為規(guī)格化數(shù),在進(jìn)行規(guī)格化浮點(diǎn)數(shù)兩數(shù)首先均為規(guī)格化數(shù),在進(jìn)行規(guī)格化浮點(diǎn)數(shù) 的加減運(yùn)算需經(jīng)過五步完成:的加減運(yùn)算需經(jīng)過五步完成: 對階操作:低階向高階補(bǔ)齊,使階碼相等;對階操作:低階向高階補(bǔ)齊,使階碼相等; 尾數(shù)運(yùn)算:階碼對齊后直接對尾數(shù)運(yùn)算;尾數(shù)運(yùn)算:階碼對齊后直接對尾數(shù)

36、運(yùn)算; 結(jié)果規(guī)格化:對運(yùn)算結(jié)果進(jìn)行規(guī)格化處理;結(jié)果規(guī)格化:對運(yùn)算結(jié)果進(jìn)行規(guī)格化處理; (使補(bǔ)碼尾數(shù)的最高位和尾數(shù)符號相反使補(bǔ)碼尾數(shù)的最高位和尾數(shù)符號相反) 如溢出則需左規(guī),如不是規(guī)格化時(shí)應(yīng)右規(guī)。如溢出則需左規(guī),如不是規(guī)格化時(shí)應(yīng)右規(guī)。 舍入操作:丟失位進(jìn)行舍入操作:丟失位進(jìn)行0舍舍1入或恒置入或恒置1處理;處理; 判斷溢出:判斷階碼是否溢出,下溢則將運(yùn)判斷溢出:判斷階碼是否溢出,下溢則將運(yùn) 算結(jié)果置算結(jié)果置0,上溢則中斷。,上溢則中斷。 39 具體說明如下: 對階運(yùn)算對階運(yùn)算(小階向大階對齊小階向大階對齊) 尾數(shù)為原碼時(shí)尾數(shù)為原碼時(shí),尾數(shù)右移尾數(shù)右移,符號位不動符號位不動,最高位補(bǔ)最高位補(bǔ)0 尾

37、數(shù)為補(bǔ)碼時(shí)尾數(shù)為補(bǔ)碼時(shí),尾數(shù)右移尾數(shù)右移,符號也移位符號也移位,最高位補(bǔ)符號最高位補(bǔ)符號 位位 例如:例如: 求求=? 小階對大階小階對大階 舍掉的是舍掉的是 如大階對小階如大階對小階 則舍掉的是則舍掉的是 21001. 021101. 0 3 333 21111. 020010. 021101. 0 21101. 021001. 020100. 0 20001.0 3 21100. 0 40 333 2101110. 02001010. 021001. 0 規(guī)格化:原碼尾數(shù)高位為規(guī)格化:原碼尾數(shù)高位為1,補(bǔ)碼與符號相反,補(bǔ)碼與符號相反 舍入操作:舍入操作:0舍舍1入入 或或 恒置恒置1 例1

38、:求=? 0舍1入后為 恒置1 例2:求 =? 0舍1入后為 恒置1 判斷結(jié)果的正確性(即結(jié)果的階碼是否溢出) 21001.021001.0 3 333 2101101.02001001.021001.0 21010.021001.0 3 3 21100.0 3 21011.0 3 21011.0 3 21011.0 41 例:假設(shè) 其中指數(shù)和小數(shù)均為二進(jìn)制真值其中指數(shù)和小數(shù)均為二進(jìn)制真值, ,求求X+Y=?X+Y=? 其階碼其階碼4 4位位 ( (含階符含階符),),補(bǔ)碼表示補(bǔ)碼表示; ;尾數(shù)尾數(shù)6 6位位, ,補(bǔ)碼表示補(bǔ)碼表示, ,尾數(shù)符號在最尾數(shù)符號在最 高位高位, ,尾數(shù)數(shù)值尾數(shù)數(shù)值5

39、 5位。位。 解: 尾符 階碼 尾數(shù)5位 X浮=0 0010 11010 Y浮=1 0011 00010 對階 X浮=0 0011 01101 尾數(shù)求和 00.01101+11.00010=11.01111 X浮+ Y浮=1 0011 01111 規(guī)格化、舍入操作、階碼溢出判斷,最后: X+Y真= 1110 21111.0,21101.0YX 11 210001.0 42 例例: :假設(shè)假設(shè) 其中指數(shù)和小數(shù)均為二進(jìn)制真值其中指數(shù)和小數(shù)均為二進(jìn)制真值, ,求求X-YX-Y。其階碼。其階碼4 4位位( (含階符含階符),),補(bǔ)補(bǔ) 碼表示碼表示; ;尾數(shù)尾數(shù)6 6位位, ,補(bǔ)碼表示補(bǔ)碼表示, ,尾數(shù)

40、符號在最高位尾數(shù)符號在最高位, ,尾數(shù)數(shù)值尾數(shù)數(shù)值5 5位位 解: 尾符 階碼 尾數(shù) X浮=0 0010 11010 Y浮=1 0011 00010 對階 X浮=0 0011 01101 尾數(shù)求差: X尾-Y 尾補(bǔ)=X 尾補(bǔ)+-Y 尾補(bǔ) =00.01101+00.11110=01.01011 規(guī)格化處理、舍入操作均不需要,階碼溢出檢查: 尾數(shù)符號位為01,尾數(shù)發(fā)生上溢出,做規(guī)格化處理 尾數(shù)連同符號右移一位00.101011,階碼加1至0100 舍入操作恒置1后:X浮- Y浮=0 0100 10101 X-Y真= 100 210101. 0 1110 21111.0,21101.0YX 43 3

41、.5.2 浮點(diǎn)數(shù)的乘、除法運(yùn)算 兩浮點(diǎn)數(shù)相乘其乘積的階碼為相乘兩數(shù)階碼之和兩浮點(diǎn)數(shù)相乘其乘積的階碼為相乘兩數(shù)階碼之和, 其尾數(shù)應(yīng)為相乘兩數(shù)的尾數(shù)之積。其尾數(shù)應(yīng)為相乘兩數(shù)的尾數(shù)之積。 兩個(gè)浮點(diǎn)數(shù)相除,商的階碼為被除數(shù)的階碼減去兩個(gè)浮點(diǎn)數(shù)相除,商的階碼為被除數(shù)的階碼減去 除數(shù)的階碼得到的差,尾數(shù)為被除數(shù)的尾數(shù)除以除數(shù)的階碼得到的差,尾數(shù)為被除數(shù)的尾數(shù)除以 除數(shù)的尾數(shù)所得的商。除數(shù)的尾數(shù)所得的商。 參加運(yùn)算的兩個(gè)數(shù)都為規(guī)格化浮點(diǎn)數(shù),乘除運(yùn)算參加運(yùn)算的兩個(gè)數(shù)都為規(guī)格化浮點(diǎn)數(shù),乘除運(yùn)算 都可能出現(xiàn)結(jié)果不滿足規(guī)格化要求的問題,因此都可能出現(xiàn)結(jié)果不滿足規(guī)格化要求的問題,因此 也必須進(jìn)行規(guī)格化、舍入和判溢出等

42、操作。規(guī)格也必須進(jìn)行規(guī)格化、舍入和判溢出等操作。規(guī)格 化時(shí)要修改階碼?;瘯r(shí)要修改階碼。 44 .浮點(diǎn)數(shù)乘法運(yùn)算(階碼的底為浮點(diǎn)數(shù)乘法運(yùn)算(階碼的底為8或或16) 前面的討論,是以階碼值的底為前面的討論,是以階碼值的底為2來進(jìn)行的。為了用相同位數(shù)的來進(jìn)行的。為了用相同位數(shù)的 階碼表示更大范圍的浮點(diǎn)數(shù),在一些計(jì)算機(jī)中也有選用階碼的底階碼表示更大范圍的浮點(diǎn)數(shù),在一些計(jì)算機(jī)中也有選用階碼的底 為為8或或16的。此時(shí)浮點(diǎn)數(shù)的。此時(shí)浮點(diǎn)數(shù)N被表示成被表示成 N=8EM 或或 N=16EM 階碼階碼E和尾數(shù)和尾數(shù)M還都是用二進(jìn)制表示的,其運(yùn)算規(guī)則與階碼以還都是用二進(jìn)制表示的,其運(yùn)算規(guī)則與階碼以2 為底基本相

43、同,但關(guān)于對階和規(guī)格化操作有新的相應(yīng)規(guī)定。當(dāng)階為底基本相同,但關(guān)于對階和規(guī)格化操作有新的相應(yīng)規(guī)定。當(dāng)階 碼以碼以8為底時(shí),只要尾數(shù)滿足為底時(shí),只要尾數(shù)滿足 18Ml 或或 一一1M一一18就是規(guī)格化數(shù)。執(zhí)行對就是規(guī)格化數(shù)。執(zhí)行對 階和規(guī)格化操作時(shí),每當(dāng)階碼的值增或減階和規(guī)格化操作時(shí),每當(dāng)階碼的值增或減1,尾數(shù)要相應(yīng)右移或,尾數(shù)要相應(yīng)右移或 左移三位。左移三位。 當(dāng)階碼以當(dāng)階碼以16為底時(shí),只要尾數(shù)滿足為底時(shí),只要尾數(shù)滿足116M1或一或一1M 一一116就是規(guī)格化數(shù)。執(zhí)行對階和規(guī)格化操作時(shí),階碼的值增就是規(guī)格化數(shù)。執(zhí)行對階和規(guī)格化操作時(shí),階碼的值增 或減或減1,尾數(shù)必須移四位。,尾數(shù)必須移四位

44、。 判別為規(guī)格化數(shù)或?qū)崿F(xiàn)規(guī)格化操作,均應(yīng)使數(shù)值的最高三項(xiàng)判別為規(guī)格化數(shù)或?qū)崿F(xiàn)規(guī)格化操作,均應(yīng)使數(shù)值的最高三項(xiàng) (以(以8為底)或四位(以為底)或四位(以16為底)中至少有一位與符號位不同。為底)中至少有一位與符號位不同。 5浮點(diǎn)數(shù)除法運(yùn)算步驟浮點(diǎn)數(shù)除法運(yùn)算步驟 與乘法運(yùn)算類似,也分求商的階碼、尾數(shù)相除、規(guī)格化、與乘法運(yùn)算類似,也分求商的階碼、尾數(shù)相除、規(guī)格化、 舍入和判溢出舍入和判溢出5個(gè)步驟,不再詳細(xì)討論。個(gè)步驟,不再詳細(xì)討論。 45 3.6運(yùn)算部件 1.定點(diǎn)運(yùn)算部件定點(diǎn)運(yùn)算部件 定點(diǎn)運(yùn)算部件由算術(shù)邏輯運(yùn)算部件定點(diǎn)運(yùn)算部件由算術(shù)邏輯運(yùn)算部件ALU、 若干個(gè)寄存器、移位電路、計(jì)數(shù)器、門電路等若

45、干個(gè)寄存器、移位電路、計(jì)數(shù)器、門電路等 組成。組成。ALU部件主要完成加減法算術(shù)運(yùn)算及邏部件主要完成加減法算術(shù)運(yùn)算及邏 輯運(yùn)算(其功能可參考輯運(yùn)算(其功能可參考 2 4 2節(jié)),其中還應(yīng)包節(jié)),其中還應(yīng)包 含有快速進(jìn)位電路。含有快速進(jìn)位電路。 2.浮點(diǎn)運(yùn)算部件浮點(diǎn)運(yùn)算部件 通常由階碼運(yùn)算部件和尾數(shù)運(yùn)算部件組成。其通常由階碼運(yùn)算部件和尾數(shù)運(yùn)算部件組成。其 各自的結(jié)構(gòu)與定點(diǎn)運(yùn)算部件相似。但階碼部分各自的結(jié)構(gòu)與定點(diǎn)運(yùn)算部件相似。但階碼部分 僅執(zhí)行加減法運(yùn)算。其尾數(shù)部分則執(zhí)行加減乘僅執(zhí)行加減法運(yùn)算。其尾數(shù)部分則執(zhí)行加減乘 除運(yùn)算,左規(guī)時(shí)有時(shí)需要左移多位。為加速移除運(yùn)算,左規(guī)時(shí)有時(shí)需要左移多位。為加速移

46、 位過程,有的機(jī)器設(shè)置了可移動多位的電路。位過程,有的機(jī)器設(shè)置了可移動多位的電路。 46 3.7 計(jì)算機(jī)中的數(shù)據(jù)校驗(yàn)方法 采用冗余校驗(yàn)方法:采用冗余校驗(yàn)方法: 即在基本的有效數(shù)據(jù)外,再擴(kuò)充部分位,增加即在基本的有效數(shù)據(jù)外,再擴(kuò)充部分位,增加 部分(冗余部分)被稱為校驗(yàn)位。將校驗(yàn)位與部分(冗余部分)被稱為校驗(yàn)位。將校驗(yàn)位與 數(shù)據(jù)位一起按某種規(guī)則編碼,寫入存儲器或向數(shù)據(jù)位一起按某種規(guī)則編碼,寫入存儲器或向 外發(fā)送。當(dāng)從存儲器讀出或接收到外部傳入的外發(fā)送。當(dāng)從存儲器讀出或接收到外部傳入的 代碼時(shí),再按相應(yīng)的規(guī)則進(jìn)行判讀。若約定的代碼時(shí),再按相應(yīng)的規(guī)則進(jìn)行判讀。若約定的 規(guī)則被破壞,則表示出現(xiàn)錯誤。根

47、據(jù)錯誤的特規(guī)則被破壞,則表示出現(xiàn)錯誤。根據(jù)錯誤的特 征進(jìn)行修正恢復(fù)。征進(jìn)行修正恢復(fù)。 47 幾個(gè)名詞概念:幾個(gè)名詞概念: 碼字:由若干代碼組成的一個(gè)字。碼字:由若干代碼組成的一個(gè)字。 如如8421碼中碼中6(0110),),7(0111) 碼距:一種碼制中任意兩個(gè)碼字間的最小距離。碼距:一種碼制中任意兩個(gè)碼字間的最小距離。 距離:兩個(gè)碼字之間不同的代碼個(gè)數(shù)。距離:兩個(gè)碼字之間不同的代碼個(gè)數(shù)。 8421碼中,最小的碼距為碼中,最小的碼距為1,如,如0000和和 0001、0010和和0011等;最大碼距為等;最大碼距為4, 如如0111和和1000。8421碼的碼距為碼的碼距為1。 碼距為碼距為

48、1,即不能查錯也不能糾錯。,即不能查錯也不能糾錯。 碼距越大,查錯、糾錯能力越強(qiáng)。碼距越大,查錯、糾錯能力越強(qiáng)。 48 3.7.1 奇偶校驗(yàn)法 奇偶校驗(yàn)法是計(jì)算機(jī)中廣泛采用的檢查傳輸奇偶校驗(yàn)法是計(jì)算機(jī)中廣泛采用的檢查傳輸 數(shù)據(jù)準(zhǔn)確性的方法。奇偶校驗(yàn)法的原理是:數(shù)據(jù)準(zhǔn)確性的方法。奇偶校驗(yàn)法的原理是: 在每組數(shù)據(jù)信息上附加一個(gè)校驗(yàn)位,校驗(yàn)位在每組數(shù)據(jù)信息上附加一個(gè)校驗(yàn)位,校驗(yàn)位 的取值(的取值(0或或1)取決于這組信息中)取決于這組信息中1的個(gè)數(shù)和校的個(gè)數(shù)和校 驗(yàn)方式(奇或偶校驗(yàn))。驗(yàn)方式(奇或偶校驗(yàn))。 如果采用奇校驗(yàn),則這組數(shù)據(jù)加上校驗(yàn)碼位如果采用奇校驗(yàn),則這組數(shù)據(jù)加上校驗(yàn)碼位 后數(shù)據(jù)中后數(shù)據(jù)

49、中1的個(gè)數(shù)應(yīng)為奇數(shù)個(gè)。的個(gè)數(shù)應(yīng)為奇數(shù)個(gè)。 如果采用偶校驗(yàn),則這組數(shù)據(jù)加上校驗(yàn)碼位如果采用偶校驗(yàn),則這組數(shù)據(jù)加上校驗(yàn)碼位 后數(shù)據(jù)中后數(shù)據(jù)中1的個(gè)數(shù)應(yīng)為偶數(shù)個(gè)。的個(gè)數(shù)應(yīng)為偶數(shù)個(gè)。 49 例如:八位信息例如:八位信息10101011中共有中共有5個(gè)個(gè)1,附,附 加校驗(yàn)位后變?yōu)榫盼?。若采用奇校?yàn),則附加加校驗(yàn)位后變?yōu)榫盼?。若采用奇校?yàn),則附加 的校驗(yàn)位應(yīng)取的校驗(yàn)位應(yīng)取0值,保證值,保證1的個(gè)數(shù)為奇數(shù)個(gè)即的個(gè)數(shù)為奇數(shù)個(gè)即 0 10101011 ;若采用偶校驗(yàn)則附加的校驗(yàn)位應(yīng);若采用偶校驗(yàn)則附加的校驗(yàn)位應(yīng) 取取1值即值即 1 10101011 。 奇偶校驗(yàn)的特點(diǎn):奇偶校驗(yàn)的特點(diǎn): 1、奇偶校驗(yàn)法使數(shù)據(jù)的碼

50、距為、奇偶校驗(yàn)法使數(shù)據(jù)的碼距為2,因而可檢出,因而可檢出 數(shù)據(jù)傳送過程中奇數(shù)個(gè)數(shù)位出錯的情況;數(shù)據(jù)傳送過程中奇數(shù)個(gè)數(shù)位出錯的情況; 2、實(shí)際中兩位同時(shí)出錯的概率極低,奇偶校驗(yàn)、實(shí)際中兩位同時(shí)出錯的概率極低,奇偶校驗(yàn) 法簡便可靠易行,但它只能發(fā)現(xiàn)錯誤,卻不法簡便可靠易行,但它只能發(fā)現(xiàn)錯誤,卻不 知錯在何處,因而不能自動糾正。知錯在何處,因而不能自動糾正。 50 偶校驗(yàn) 出錯 奇校驗(yàn)出錯 偶形成 奇形成 D校為校驗(yàn)位 D校 D1 D2 D3 D4 D5 D6 D7 D8 8位數(shù)據(jù)的奇偶校驗(yàn)碼形成電路及檢碼電路 51 3.7.2 海明碼校驗(yàn)方法 海明碼校驗(yàn)方法以奇偶校驗(yàn)法為基礎(chǔ),其校驗(yàn)海明碼校驗(yàn)方法

51、以奇偶校驗(yàn)法為基礎(chǔ),其校驗(yàn) 位不是一個(gè)而是一組,故其碼距大于位不是一個(gè)而是一組,故其碼距大于2 。 海明碼校驗(yàn)方法能夠檢測出具體錯誤并糾正。海明碼校驗(yàn)方法能夠檢測出具體錯誤并糾正。 原理是在數(shù)據(jù)中加入原理是在數(shù)據(jù)中加入r個(gè)校驗(yàn)位,將數(shù)據(jù)的碼個(gè)校驗(yàn)位,將數(shù)據(jù)的碼 距按照一定規(guī)則拉長。距按照一定規(guī)則拉長。r個(gè)校驗(yàn)位可以表示個(gè)校驗(yàn)位可以表示2r 個(gè)信息,除一個(gè)表示無誤信息外,其余個(gè)信息,除一個(gè)表示無誤信息外,其余2r-1信信 息可以用來標(biāo)明錯誤的具體位置,但由于校驗(yàn)息可以用來標(biāo)明錯誤的具體位置,但由于校驗(yàn) 位本身也可能在傳送中出錯,所以只有位本身也可能在傳送中出錯,所以只有2r-1-r 個(gè)信息可用,

52、即個(gè)信息可用,即r位校驗(yàn)碼只可標(biāo)明位校驗(yàn)碼只可標(biāo)明2r-1-r個(gè)錯個(gè)錯 誤信息。或誤信息?;?rk+r+1 k是被傳送數(shù)據(jù)的位數(shù)。是被傳送數(shù)據(jù)的位數(shù)。 例如例如:用:用4個(gè)校驗(yàn)位能可靠傳輸個(gè)校驗(yàn)位能可靠傳輸24-1-4=11位信位信 息;而要校驗(yàn)息;而要校驗(yàn)32位數(shù)據(jù)則需至少位數(shù)據(jù)則需至少6個(gè)校驗(yàn)位。個(gè)校驗(yàn)位。 52 如要能檢測與自動校正一位錯井發(fā)現(xiàn) 兩位錯此時(shí)校驗(yàn)位的位數(shù)r和數(shù)據(jù)位的 位數(shù)k應(yīng)滿足下述關(guān)系: 2r-1 k+r (3. 19) 按式(3.19),可計(jì)算出數(shù)據(jù)位k與 校驗(yàn)位r的對應(yīng)關(guān)系,如教材表3.8所 示。 53 一、編碼方法(以四個(gè)校驗(yàn)位進(jìn)行說明) 四個(gè)校驗(yàn)位最多可以校驗(yàn)四個(gè)

53、校驗(yàn)位最多可以校驗(yàn)11位數(shù)據(jù)。設(shè):位數(shù)據(jù)。設(shè): D10D9D8D7D6D5D4D3D2D1D0為為11個(gè)數(shù)據(jù)位,個(gè)數(shù)據(jù)位, P4P3P2P1分別為四個(gè)校驗(yàn)碼,則編碼規(guī)則是:分別為四個(gè)校驗(yàn)碼,則編碼規(guī)則是: 海明碼的總位數(shù)等于數(shù)據(jù)位與校驗(yàn)位之和;海明碼的總位數(shù)等于數(shù)據(jù)位與校驗(yàn)位之和; 每個(gè)校驗(yàn)位每個(gè)校驗(yàn)位Pi排放在排放在2i-1的位置,例如的位置,例如P4排放排放 在第在第24-1=8位,其余數(shù)據(jù)位依序排列。即:位,其余數(shù)據(jù)位依序排列。即: D10D9D8D7D6D5D4P4D3D2D1P3D0P2P1 海明碼的每一位用多個(gè)校驗(yàn)位一起進(jìn)行校驗(yàn),海明碼的每一位用多個(gè)校驗(yàn)位一起進(jìn)行校驗(yàn), 被校驗(yàn)的位

54、號等于校驗(yàn)它的各校驗(yàn)位位號和;被校驗(yàn)的位號等于校驗(yàn)它的各校驗(yàn)位位號和; 各校驗(yàn)位的值為它參與校驗(yàn)的數(shù)據(jù)位的異或。各校驗(yàn)位的值為它參與校驗(yàn)的數(shù)據(jù)位的異或。 54 海明碼校驗(yàn)表 海明碼位號參與校驗(yàn)的校驗(yàn)位位號參與的校驗(yàn)位 H1 P1 1P1 H2 P2 2P2 H3 D0 2,1 (3=2+1)P2 P1 H4 P3 4P3 H5 D1 4,1 (5=4+1)P3,P1 H6 D2 4,2 (6=4+2),P3,P2 H7 D3 4,2,1 (7=4+2+1)P4,P3,P2,P1 H8 P4 8P4 H9 D4 8,1 (8=8+1)P4,P1 H10 D5 8,2 (10=8+2)P4,P2

55、H11 D6 8,2,1 (11=8+2+1)P4,P2,P1 55 各校驗(yàn)位形成公式: P1=D0 D1 D3 D4 D6 D8 D10 (1) P2=D0 D2 D3 D5 D6 D9 D10 (2) P3=D1 D2 D3 D7 D8 D9 D10 (3) P4=D4 D5 D6 D7 D8 D9 D10 (4) 按上述方式按上述方式Pi的取值是采用偶校驗(yàn)時(shí)的取值,的取值是采用偶校驗(yàn)時(shí)的取值, 當(dāng)采用奇校驗(yàn)時(shí),當(dāng)采用奇校驗(yàn)時(shí),Pi則取反。這樣則取反。這樣Pi連同數(shù)據(jù)連同數(shù)據(jù) 位一起形成了海明碼的各位。位一起形成了海明碼的各位。 56 二、檢查糾錯(以四個(gè)校驗(yàn)位進(jìn)行說明) 海明碼數(shù)據(jù)傳送到

56、接收方后,再將各校驗(yàn)海明碼數(shù)據(jù)傳送到接收方后,再將各校驗(yàn) 位的值與它所參與校驗(yàn)的數(shù)據(jù)位的異或結(jié)果進(jìn)位的值與它所參與校驗(yàn)的數(shù)據(jù)位的異或結(jié)果進(jìn) 行異或運(yùn)算。行異或運(yùn)算。 運(yùn)算結(jié)果稱為校驗(yàn)和。校驗(yàn)和共運(yùn)算結(jié)果稱為校驗(yàn)和。校驗(yàn)和共 有四個(gè)。有四個(gè)。 對偶校驗(yàn)來說,如果校驗(yàn)和不為零則傳輸對偶校驗(yàn)來說,如果校驗(yàn)和不為零則傳輸 過程中間有錯誤。而錯誤的具體位置則由四個(gè)過程中間有錯誤。而錯誤的具體位置則由四個(gè) 校驗(yàn)和依序排列后直接指明。如果四個(gè)校驗(yàn)和校驗(yàn)和依序排列后直接指明。如果四個(gè)校驗(yàn)和 S4S3S2S1 依序排列后等于依序排列后等于(1001)2=(9)10 時(shí),就時(shí),就 表明海明碼的第九位也就是表明海明

57、碼的第九位也就是D4發(fā)生了錯誤,此發(fā)生了錯誤,此 時(shí)只要將時(shí)只要將D4取反,也就糾正了錯誤。取反,也就糾正了錯誤。 57 校驗(yàn)和校驗(yàn)和Si的表達(dá)式:的表達(dá)式: S1 =D0 D1 D3 D4 D6 D8 D10 P1 S2 = D0 D2 D3 D5 D6 D9 D10 P2 S3 =D1 D2 D3 D7 D8 D9 D10 P3 S4 =D4 D5 D6 D7 D8 D9 D10 P4 當(dāng)采用偶校驗(yàn)方式其傳送數(shù)據(jù)正確時(shí),校驗(yàn)和當(dāng)采用偶校驗(yàn)方式其傳送數(shù)據(jù)正確時(shí),校驗(yàn)和 S1 S4的值分別都為的值分別都為0;當(dāng)采用奇校驗(yàn)方式其;當(dāng)采用奇校驗(yàn)方式其 傳送數(shù)據(jù)正確時(shí),校驗(yàn)和傳送數(shù)據(jù)正確時(shí),校驗(yàn)和

58、S1 S4的值分別都為的值分別都為 1。當(dāng)不為上述值時(shí),傳送就發(fā)生了錯誤。當(dāng)不為上述值時(shí),傳送就發(fā)生了錯誤。 58 解:已知解:已知D10D9D8D7D6D5D4D3D2D1D0=10110100110 由于被校驗(yàn)位的位號等于校驗(yàn)它的各校驗(yàn)位位號由于被校驗(yàn)位的位號等于校驗(yàn)它的各校驗(yàn)位位號 之和以及各校驗(yàn)位的取值等于它參與校驗(yàn)的數(shù)據(jù)位取之和以及各校驗(yàn)位的取值等于它參與校驗(yàn)的數(shù)據(jù)位取 值的異或。所以校驗(yàn)位的取值以及值的異或。所以校驗(yàn)位的取值以及所求所求海明碼為:海明碼為: P1=D0 D1 D3 D4 D6 D8 D10=1 P2=D0 D2 D3 D5 D6 D9 D10=1 P3=D1 D2

59、D3 D7 D8 D9 D10=1 P4=D4 D5 D6 D7 D8 D9 D10=0 D10D9D8D7D6D5D4P4D3D2D1P3D0P2P1=101101000111011 傳送正確時(shí)校驗(yàn)和的值為傳送正確時(shí)校驗(yàn)和的值為0 0,如果不等于,如果不等于0 0,則是幾就是,則是幾就是 第幾位出錯,是第幾位出錯,是7 7則是第則是第7 7位位D3出錯,此時(shí)將其取反即可出錯,此時(shí)將其取反即可 糾正錯誤。糾正錯誤。 例題:采用例題:采用4位校驗(yàn)位、偶校驗(yàn)方式,位校驗(yàn)位、偶校驗(yàn)方式, 寫出寫出10110100110的海明碼。的海明碼。 59 譯 碼 器 無 錯 有 錯 寄 偶 形 成 線 路寄

60、偶 形 成 線 路寄 偶 形 成 線 路寄 偶 形 成 線 路 60 以上以上 圖圖3.11是是H=12,數(shù)據(jù)位,數(shù)據(jù)位k=8,校驗(yàn)位,校驗(yàn)位 r=4的海明校驗(yàn)線的海明校驗(yàn)線 路,記作(路,記作(l2.8)分組碼。)分組碼。 圖圖3.ll中的中的H12,H11,.,H1是被校驗(yàn)碼,是被校驗(yàn)碼,D8,D7,.,D1是糾正是糾正 后的數(shù)據(jù)。在線路中,先用奇偶形成線路得到后的數(shù)據(jù)。在線路中,先用奇偶形成線路得到S4,S3,S2,S1,如,如 果果S4S1為全為全“0”,說明代碼無錯,則,說明代碼無錯,則 D8D7.DI=H12H11H10H9H7H6H5H3。如果。如果S4S1不為全不為全0, 說明

溫馨提示

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

評論

0/150

提交評論