運(yùn)算方法與運(yùn)算器改_第1頁
運(yùn)算方法與運(yùn)算器改_第2頁
運(yùn)算方法與運(yùn)算器改_第3頁
運(yùn)算方法與運(yùn)算器改_第4頁
運(yùn)算方法與運(yùn)算器改_第5頁
已閱讀5頁,還剩168頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

運(yùn)算方法與運(yùn)算器改第1頁,課件共173頁,創(chuàng)作于2023年2月本章內(nèi)容:2.1數(shù)據(jù)與文字的表示方法

2.2定點(diǎn)加法、減法運(yùn)算

2.3定點(diǎn)乘法運(yùn)算

2.4定點(diǎn)除法運(yùn)算

2.5定點(diǎn)運(yùn)算器的組成

2.6浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器本章小結(jié)運(yùn)算方法和運(yùn)算器第2頁,課件共173頁,創(chuàng)作于2023年2月2.1數(shù)據(jù)與文字的表示方法2.1.1數(shù)據(jù)格式2.1.2數(shù)的機(jī)器碼表示2.1.3字符與字符串的表示方法2.1.4漢字的表示方法2.1.5校驗(yàn)碼數(shù)據(jù)與文字的表示方法第3頁,課件共173頁,創(chuàng)作于2023年2月2.1.1數(shù)據(jù)格式

計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種:(1)定點(diǎn)格式(2)浮點(diǎn)格式

定點(diǎn)格式(小數(shù)點(diǎn)位置固定)容許的數(shù)值范圍有限,但要求的處理硬件比較簡單。

浮點(diǎn)格式(小數(shù)點(diǎn)位置浮動(dòng))容許的數(shù)值范圍很大,但要求的處理硬件比較復(fù)雜。數(shù)據(jù)格式第4頁,課件共173頁,創(chuàng)作于2023年2月1.

定點(diǎn)數(shù)的表示方法定點(diǎn)表示:約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是按約定固定不變的,小數(shù)點(diǎn)就不再使用記號(hào)“.”來表示。定點(diǎn)數(shù)據(jù)的形式:純小數(shù)或純整數(shù)。

(設(shè):定點(diǎn)數(shù)表示為x=x0x1x2…xn

其中:x0符號(hào)位,0代表正號(hào),1代表負(fù)號(hào))小數(shù)點(diǎn)的位置約定在符號(hào)位x0的后面(不顯示)小數(shù)點(diǎn)的位置約定在數(shù)值位xn的后面(不顯示)定點(diǎn)數(shù)的表示方法第5頁,課件共173頁,創(chuàng)作于2023年2月定點(diǎn)數(shù)例例:X=+1010110.純整數(shù):X=01010110.正數(shù),符號(hào)位取0Y=-1101001.純整數(shù):Y=11101001.負(fù)數(shù),符號(hào)位取1X=+0.11011Y=-0.10101符號(hào)位取0純小數(shù):X=0.11011符號(hào)位取1純小數(shù):X=1.10101第6頁,課件共173頁,創(chuàng)作于2023年2月純整數(shù):X=01010110符號(hào)位取0純整數(shù):Y=11101001符號(hào)位取1符號(hào)位取0純小數(shù):X=0.11011符號(hào)位取1純小數(shù):X=1.10101注意到:無論是整數(shù)或是小數(shù),在機(jī)器數(shù)的表示中,都不出現(xiàn)小數(shù)點(diǎn)“.”,只是約定其位置。定點(diǎn)數(shù)例第7頁,課件共173頁,創(chuàng)作于2023年2月(x0x1x2…xn

各位均為0時(shí)最??;各位均為1時(shí)最大)純小數(shù)的表示范圍:0≤|x|≤1-2-n

(2.1)

純整數(shù)的表示范圍為:

0≤|x|≤2n-1

(2.2)

目前計(jì)算機(jī)中多采用定點(diǎn)純整數(shù)表示,因此將定點(diǎn)數(shù)表示的運(yùn)算簡稱為整數(shù)運(yùn)算。

定點(diǎn)數(shù)的表示方法第8頁,課件共173頁,創(chuàng)作于2023年2月例:156.78 =15.678×101

=

1.5678×102

=0.15678×103=M×RE其中:M為尾數(shù);R為基數(shù);E為階碼(指數(shù))。二進(jìn)制數(shù)在定點(diǎn)計(jì)算機(jī)中,一般約定:尾數(shù)|M|<1.0,并按此原則確定各數(shù)據(jù)的浮點(diǎn)表示格式?!嗌侠?156.67=0.15678×103

(規(guī)格化表示法)同理:對于二進(jìn)制數(shù)+1011.1101=+0.10111101×2+4

=0.10111101×2+100=M×RE那么,計(jì)算機(jī)中究竟采用哪種數(shù)據(jù)形式?顯然存在多種數(shù)據(jù)形式浮點(diǎn)數(shù)的表示方法2、浮點(diǎn)數(shù)的表示方法第9頁,課件共173頁,創(chuàng)作于2023年2月浮點(diǎn)數(shù)表示可見:一個(gè)機(jī)器浮點(diǎn)數(shù)由階碼E和尾數(shù)M及其符號(hào)位組成。約定:尾數(shù)M用定點(diǎn)小數(shù)表示,給出有效數(shù)字的位數(shù),M決定了浮點(diǎn)數(shù)的表示精度;

階碼E:用整數(shù)形式表示,指明小數(shù)點(diǎn)在數(shù)據(jù)中的位置,其決定了浮點(diǎn)數(shù)的表示范圍?!喔↑c(diǎn)數(shù)的一般形式為:

第10頁,課件共173頁,創(chuàng)作于2023年2月注:階碼位數(shù)與尾數(shù)位數(shù)的關(guān)系在字長確定的情況下,階碼的位數(shù)增加,數(shù)的表示范圍增加;但數(shù)的尾數(shù)的位數(shù)相應(yīng)減少,則數(shù)的精度就降低。浮點(diǎn)數(shù)的規(guī)格化表示方法:規(guī)格化:其尾數(shù)的第一位為“1”,若不為1,則用左規(guī)的方法來實(shí)現(xiàn)。實(shí)例機(jī)器零當(dāng)一個(gè)浮點(diǎn)數(shù)的尾數(shù)為0,不論階碼為何值,其結(jié)果為0階碼的值遇到比它能表示的最小值還小時(shí),不管尾數(shù)為何值,其結(jié)果為0浮點(diǎn)數(shù)表示第11頁,課件共173頁,創(chuàng)作于2023年2月注:階碼位數(shù)與尾數(shù)位數(shù)的關(guān)系例:說明以下數(shù)值是否為規(guī)格化數(shù)據(jù)210*0.11012-10*0.1101211*0.011012-11*0.001101規(guī)格化后:210*0.110129*0.1101返回浮點(diǎn)數(shù)表示第12頁,課件共173頁,創(chuàng)作于2023年2月注:階碼位數(shù)與尾數(shù)位數(shù)的關(guān)系例:浮點(diǎn)數(shù)運(yùn)算把一個(gè)真值為+23.25的十進(jìn)制用浮點(diǎn)數(shù)格式1表示,要求如下:其原碼設(shè)浮點(diǎn)數(shù)字長為16位,其中階碼5位,尾數(shù)10位,符號(hào)位1位。把一個(gè)真值為+23.25的十進(jìn)制用浮點(diǎn)數(shù)格式2表示,要求如下:其原碼設(shè)浮點(diǎn)數(shù)字長為16位,其中階碼5位(含1位符號(hào)位),尾數(shù)11位(含1位符號(hào)位)。浮點(diǎn)數(shù)表示第13頁,課件共173頁,創(chuàng)作于2023年2月注:階碼位數(shù)與尾數(shù)位數(shù)的關(guān)系例:浮點(diǎn)數(shù)運(yùn)算把一個(gè)真值為+23.25的十進(jìn)制用浮點(diǎn)數(shù)格式1表示,要求如下:其原碼設(shè)浮點(diǎn)數(shù)字長為16位,其中階碼5位,尾數(shù)10位,符號(hào)位1位。解1:令X=23.25表示成二進(jìn)制為:10111.01用浮點(diǎn)數(shù)規(guī)格化表示其原碼為【X】原=2+00101*0.1011101000則在機(jī)器中表示為:或【X】原=0,00101,1011101000浮點(diǎn)數(shù)表示第14頁,課件共173頁,創(chuàng)作于2023年2月注:階碼位數(shù)與尾數(shù)位數(shù)的關(guān)系例:浮點(diǎn)數(shù)運(yùn)算把一個(gè)真值為+23.25的十進(jìn)制用浮點(diǎn)數(shù)格式1表示,要求如下:其原碼設(shè)浮點(diǎn)數(shù)字長為16位,其中階碼5位,尾數(shù)10位,符號(hào)位1位。解2:令X=23.25表示成二進(jìn)制為:10111.01用浮點(diǎn)數(shù)規(guī)格化表示其原碼為【X】原=2+00101*0.1011101000則在機(jī)器中表示為:或【X】原=0,0101,0,1011101000浮點(diǎn)數(shù)表示第15頁,課件共173頁,創(chuàng)作于2023年2月浮點(diǎn)數(shù)表示按照IEEE754的標(biāo)準(zhǔn),32位浮點(diǎn)數(shù)(和64位)浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式為:其中:S=浮點(diǎn)數(shù)的符號(hào)位,0表示正數(shù),1表示負(fù)數(shù)。

M=尾數(shù),23位,用純小數(shù)表示。E=階碼,8位,階符采用隱含方式,即采用移碼方式來表示正負(fù)指數(shù)。

一個(gè)規(guī)格化的32位浮點(diǎn)數(shù)x的真值可表示為:X=(-1)S×(1.M)×2E-127

,e=E-127

其中尾數(shù)域所表示的值是1.M。因?yàn)橐?guī)格化的浮點(diǎn)數(shù)的尾數(shù)域最左位(最高有效位)總是1,故這一位經(jīng)常不予存儲(chǔ),而認(rèn)為隱藏在小數(shù)點(diǎn)的左邊。第16頁,課件共173頁,創(chuàng)作于2023年2月浮點(diǎn)數(shù)表示幾點(diǎn)注釋:

為了提高數(shù)據(jù)的表示精度,當(dāng)尾數(shù)的值不為

0時(shí),其絕對值|M|應(yīng)≥0.5,即:尾數(shù)絕對值域的最高有效位應(yīng)為1,否則通過修改階碼同時(shí)左右移小數(shù)點(diǎn)的辦法,使其變成這一表示形式,這稱為浮點(diǎn)數(shù)的規(guī)格化表示。浮點(diǎn)數(shù)所表示的范圍顯然遠(yuǎn)比定點(diǎn)數(shù)大。以下兩種情況計(jì)算機(jī)都把該浮點(diǎn)數(shù)看成零值,稱為機(jī)器零。⑴當(dāng)浮點(diǎn)數(shù)的尾數(shù)M為0;(不論其階碼E為何值)⑵當(dāng)階碼E的值<Emin值時(shí)。(不管其尾數(shù)M為何值)

第17頁,課件共173頁,創(chuàng)作于2023年2月浮點(diǎn)數(shù)表示[解:]將16進(jìn)制數(shù)展開后,可得到二進(jìn)制數(shù)格式為:01000001001101100000000000000000指數(shù)e=階碼-127=10000010-01111111=00000011=(3)10包括隱藏位1的尾數(shù)1.M=1.01101100000000000000000=1.011011于是有:x=(-1)S×1.M×2e=(-1)0+(1.011011)×23

=+1011.011=(11.375)10[例1]:若浮點(diǎn)數(shù)x的二進(jìn)制存儲(chǔ)格式為(41360000)16,求其32位浮點(diǎn)數(shù)的十進(jìn)制值。第18頁,課件共173頁,創(chuàng)作于2023年2月浮點(diǎn)數(shù)表示[解:]首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù):20.59375=10100.10011然后移動(dòng)小數(shù)點(diǎn),使其在第1,2位之間

10100.10011=1.010010011×24

小數(shù)點(diǎn)被左移了4位,于是得到:e=4

尾符

S=0,階碼

E=4+127=131,尾數(shù)

M=010010011最后得到32位浮點(diǎn)數(shù)的二進(jìn)制存儲(chǔ)格式為:01000001101001001100000000000000

=(41A4C000)16此“1”被隱藏[例2]:將十進(jìn)制數(shù)20.59375轉(zhuǎn)換成位浮點(diǎn)數(shù)的二進(jìn)制格式來存儲(chǔ)。第19頁,課件共173頁,創(chuàng)作于2023年2月

3.十進(jìn)制數(shù)串的表示方法十進(jìn)制數(shù)串在計(jì)算機(jī)內(nèi)主要有兩種表示形式:

1.字符串形式字符串形式:每一個(gè)十進(jìn)制的數(shù)位或符號(hào)位都用一個(gè)字節(jié)存放。如:+12

+12-38-382.壓縮的十進(jìn)制數(shù)串形式壓縮的十進(jìn)制數(shù)串形式:一個(gè)字節(jié)存放兩個(gè)十進(jìn)制的數(shù)位。如:+123、-12

123C(+123)012D(-12)十進(jìn)制數(shù)的表示方法第20頁,課件共173頁,創(chuàng)作于2023年2月

在傳統(tǒng)的計(jì)算機(jī)體系結(jié)構(gòu)中,用指令本身來說明操作數(shù)據(jù)的類型。如:定點(diǎn)加法表示操作數(shù)是純小數(shù)或純整數(shù);浮點(diǎn)加法表示操作數(shù)是浮點(diǎn)數(shù);十進(jìn)制加法表示操作數(shù)是BCD數(shù)。由于操作數(shù)據(jù)類型不同,要設(shè)三種不同的指令(操作碼)來加以區(qū)分。4.自定義數(shù)據(jù)表示數(shù)串的表示第21頁,課件共173頁,創(chuàng)作于2023年2月

自定義數(shù)據(jù)表示則用數(shù)據(jù)本身來說明數(shù)據(jù)類型。表示形式有兩種,即標(biāo)志符數(shù)據(jù)表示和描述符數(shù)據(jù)表示。標(biāo)志符數(shù)據(jù)表示:要求對每一個(gè)數(shù)據(jù)都附加標(biāo)志符,其格式如下:標(biāo)識(shí)符數(shù)據(jù)其中:標(biāo)志符指明后面的數(shù)據(jù)所具有的類型,如整數(shù)、浮點(diǎn)數(shù)、BCD數(shù)、字符串等。數(shù)串的表示第22頁,課件共173頁,創(chuàng)作于2023年2月描述符數(shù)據(jù)表示:主要用來描述多維結(jié)構(gòu)的數(shù)據(jù)類型,如向量、矩陣、記錄等。其格式為:描述符標(biāo)志位特征標(biāo)記數(shù)據(jù)塊長度數(shù)據(jù)塊起始地址

指明這是一個(gè)數(shù)據(jù)描述符指明數(shù)據(jù)的特征指明數(shù)組中元素個(gè)數(shù)指明數(shù)據(jù)塊的首地址注:描述符指令中并未給出具體數(shù)據(jù),僅指出數(shù)據(jù)的性質(zhì)和存儲(chǔ)地點(diǎn)。標(biāo)志符與描述符表示的區(qū)別:參見教材P23數(shù)串的表示第23頁,課件共173頁,創(chuàng)作于2023年2月基本思想:把符號(hào)位和數(shù)字位一起編碼來表示一個(gè) 實(shí)際的數(shù)。主要表示方法有:原碼、補(bǔ)碼、反碼、移碼等。各種編碼表示的數(shù)稱為機(jī)器數(shù)或機(jī)器碼;其對應(yīng)的真實(shí)數(shù)值稱為該編碼對應(yīng)的真值。數(shù)的機(jī)器碼表示2.1.2數(shù)的機(jī)器碼表示第24頁,課件共173頁,創(chuàng)作于2023年2月1.原碼表示法若定點(diǎn)小數(shù)為x=±0.x1x2…xn,則其原碼表示的定義是:式中[x]原是機(jī)器數(shù),x是真值。例如,x=+0.1001,則[x]原=0.1001x=-0.1001,則[x]原=1.1001數(shù)值符號(hào)數(shù)的原碼表示x1>x≥01-x=1+|x|0≥

x>-1第25頁,課件共173頁,創(chuàng)作于2023年2月對于定點(diǎn)整數(shù)

x=±x1x2…xn,則原碼的定義是:對于定點(diǎn)整數(shù),其原碼形式為:

[x]原=x0x1x2…xn,

注意到:原碼機(jī)器中“+0”、“-0”

有兩種形式:對于定點(diǎn)小數(shù):[+0]原=0.000…0[-0]原=1.000…0對于定點(diǎn)整數(shù):[+0]原=0000…0.[-0]原=1000…0.數(shù)的原碼表示x2n>x≥02n-x=2n+|x|

0≥x>-2n(2.8)符號(hào)數(shù)值第26頁,課件共173頁,創(chuàng)作于2023年2月一般情況下,對于定點(diǎn)小數(shù),其真值與原碼之間的轉(zhuǎn)換符合下面的規(guī)律:

x=+0.x1x2…xn[x]原=0.x1x2…xnx=-0.x1x2…xn[x]原=1.x1x2…xn對于定點(diǎn)整數(shù),其真值與原碼之間的轉(zhuǎn)換符合下面的規(guī)律:

x=+x1x2…xn[x]原=0x1x2…xn.x=-x1x2…xn[x]原=1x1x2…xn.數(shù)的原碼表示第27頁,課件共173頁,創(chuàng)作于2023年2月

原碼表示法的主要特點(diǎn)是簡單、易懂,但它的最大缺點(diǎn)是:由于數(shù)值部分采用絕對值表示,因而使得加減法運(yùn)算比較復(fù)雜,而加減法運(yùn)算正是計(jì)算機(jī)中最常使用的運(yùn)算。所以,必須探討解決方法——補(bǔ)碼則正是一種解決方法。數(shù)的原碼表示第28頁,課件共173頁,創(chuàng)作于2023年2月2.補(bǔ)碼表示法

補(bǔ)碼的概念(以鐘表對時(shí)為例)

假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為4點(diǎn)正;而有一只表已經(jīng)7點(diǎn)了,為了校準(zhǔn)時(shí)間,可以采用兩種方法:一是將時(shí)針退7-4=3格;一是將時(shí)針向前撥12-3=9格。顯然:這兩種方法都能對準(zhǔn)到4點(diǎn),由此可以看出,減3和加9是等價(jià)的。所以稱:當(dāng)模數(shù)Mod=12時(shí),9是(-3)補(bǔ)碼。用數(shù)學(xué)公式表示:-3=+9 (mod12)“?!北硎颈粊G掉的數(shù)值。上式在數(shù)學(xué)上稱為同余式。

∴設(shè)某數(shù)為x,當(dāng)Mod=12時(shí),x-3=x+9、x+7=x-5都是等價(jià)的。從這里可以得到一個(gè)啟示,就是負(fù)數(shù)用補(bǔ)碼表示時(shí),可以把減法轉(zhuǎn)化為加法。數(shù)的補(bǔ)碼表示第29頁,課件共173頁,創(chuàng)作于2023年2月補(bǔ)碼的定義:1、定點(diǎn)小數(shù)例如

x=+0.1011,則[x]補(bǔ)=0.1011;x=-0.1011,則[x]補(bǔ)=10+x=10.0000-0.1011

=1.0101正數(shù)的補(bǔ)碼就是本身負(fù)數(shù)的補(bǔ)碼需作運(yùn)算數(shù)的補(bǔ)碼表示x1>x≥02+x=2-|x|0≥

x≥-1(mod2)10.0000

-0.10111.0101第30頁,課件共173頁,創(chuàng)作于2023年2月

根據(jù)補(bǔ)碼定義,求負(fù)數(shù)的補(bǔ)碼時(shí)需作一次減法運(yùn)算,這顯然不是補(bǔ)碼方法的初衷。后面將介紹反碼表示法可以解決負(fù)數(shù)的求補(bǔ)問題。2、定點(diǎn)整數(shù)例:已知 x=+10111, y=-11011,

求[x]補(bǔ)、[y]補(bǔ)

(n=5)按定義:[x]補(bǔ)=010111 [y]補(bǔ)=25+1+y=1000000-11011=100101數(shù)的補(bǔ)碼表示x2n

>x≥0

2n+1+x=2n+1-|x|0≥

x≥-2n(mod

2n+1)

100000011011100101注:上式機(jī)器數(shù)的位數(shù)為n+1第31頁,課件共173頁,創(chuàng)作于2023年2月數(shù)的補(bǔ)碼表示注:0的補(bǔ)碼只有一種形式

對于定點(diǎn)小數(shù):[+0]補(bǔ)=[-0]補(bǔ)=0.0000

對于定點(diǎn)整數(shù):[+0]補(bǔ)=[-0]補(bǔ)=00000.

因此,補(bǔ)碼的表示范圍相對于原碼、反碼來講多一種,定點(diǎn)小數(shù)可以表示-1,n+1位定點(diǎn)整數(shù)可以表示-2n。第32頁,課件共173頁,創(chuàng)作于2023年2月3.反碼表示法二進(jìn)制數(shù)求反:就是二進(jìn)制的各位數(shù)碼0變?yōu)?,1變?yōu)?。即:若xi=0,則=1。若xi=1,則=0.對定點(diǎn)小數(shù),反碼的定義參見書(2.11)式。數(shù)的反碼表示正數(shù)的反碼就是本身負(fù)數(shù)的反碼則是符號(hào)位為1,數(shù)值位求反。x1>x≥0(2-

2-n)

+x=(2-

2-n)_|x|0≥

x>-1(2.11)第33頁,課件共173頁,創(chuàng)作于2023年2月由式(2.11)可以得出:[x]反+|x|=1.111…1=10.0…0-0.00…1=2-

2-n

得出:

[x]反=(2-2-n)+x

0≥

x>-1數(shù)的反碼表示第34頁,課件共173頁,創(chuàng)作于2023年2月比較反碼與補(bǔ)碼的公式

[x]反=(2-2-n)+x

[x]補(bǔ)=2+x可得到:[x]補(bǔ)=[x]反+2-n由此可知一個(gè)由反碼求補(bǔ)碼的重要公式,即:一個(gè)負(fù)數(shù)的補(bǔ)碼,可以通過將該數(shù)符號(hào)位置1,其余取反,然后在最末位(2-n)上加1

的方法直接獲得。數(shù)的補(bǔ)碼與反碼關(guān)系第35頁,課件共173頁,創(chuàng)作于2023年2月例:已知 x=+0.1011, y=-0.1101,

求[x]補(bǔ)、[y]補(bǔ)按定義:[x]補(bǔ)=0.1011 (注:正數(shù)的補(bǔ)碼就是該數(shù)本身)

[y]補(bǔ)=1.0010+0.0001 =1.0011 [y]反2-n注意到:1、0的反碼不唯一:[+0]反=0.00…0;[-0]反=1.11…12、比較反碼與補(bǔ)碼的公式:[x]反=(2-2-n)+x

[x]補(bǔ)=2+x可知:補(bǔ)碼與反碼的關(guān)系為:[x]補(bǔ)=[x]反+2-n數(shù)的補(bǔ)碼與反碼關(guān)系第36頁,課件共173頁,創(chuàng)作于2023年2月

上面的公式告訴我們,若要一個(gè)負(fù)數(shù)變補(bǔ)碼,其方法是符號(hào)位置1,其余各位0變1,1變0,然后在最末位(2-n)上加1。對定點(diǎn)整數(shù),反碼表示的定義為:也可以用同樣的方法得出定點(diǎn)整數(shù)的補(bǔ)碼與反碼的關(guān)系,找出利用反碼求定點(diǎn)整數(shù)補(bǔ)碼的方法。x2n

>x≥0

(2n+1-1)+x0≥

x≥-2n(2.13)數(shù)的補(bǔ)碼與反碼關(guān)系第37頁,課件共173頁,創(chuàng)作于2023年2月

求一個(gè)數(shù)的補(bǔ)碼的另一種有效的轉(zhuǎn)換方法:

對于負(fù)數(shù),將原碼的符號(hào)位不變(或置真值的符號(hào)位至1),數(shù)值部分由低位向高位轉(zhuǎn)換,對開始遇到的0和第一個(gè)1取其原碼,以后的各位均取反。例:y=-0.110100,

求[y]補(bǔ)解:[y]補(bǔ)=1.001

100保持不變逐位取反[y]反=1.001011[y]補(bǔ)=1.001011+0.000001=1.001100數(shù)的補(bǔ)碼與反碼關(guān)系第38頁,課件共173頁,創(chuàng)作于2023年2月4.移碼表示法

在計(jì)算機(jī)中,移碼通常用于表示浮點(diǎn)數(shù)的階碼。由于階碼一般取整數(shù),所以移碼通常只用于整數(shù)的表示。對定點(diǎn)整數(shù),移碼的定義是:

[x]移=2n+x

2n>x≥-2n(n為移碼數(shù)值部分的位數(shù))移碼的表示方法第39頁,課件共173頁,創(chuàng)作于2023年2月例:若階碼數(shù)值部分為5位,以x表示真值,則

[x]移=25+x

25>x≥-25

又例:當(dāng)正數(shù)x=+10101時(shí),[x]移=1,10101

當(dāng)負(fù)數(shù)x=-10101時(shí),[x]移=25+x=25-10101=0,01011。注意到:移碼中的逗號(hào)不是小數(shù)點(diǎn),而是表示左邊一位是符號(hào)位。顯然,移碼中符號(hào)位x0表示的規(guī)律與原碼、補(bǔ)碼、反碼相反。移碼的表示范圍和補(bǔ)碼一致,0只有一種表示方式,只是符號(hào)位正好相反。移碼的表示方法第40頁,課件共173頁,創(chuàng)作于2023年2月機(jī)器碼表示法小結(jié):在數(shù)據(jù)的四種機(jī)器表示法中,正數(shù)的原碼、反碼、補(bǔ)碼等于真值,只有負(fù)數(shù)才分別有不同的表示方法。補(bǔ)碼和移碼的0只有一種表示方法,因此其表示范圍相對于原碼和反碼多一種,定點(diǎn)小數(shù)可表示-1(移碼沒有小數(shù)形式),正數(shù)可表示-2n。移碼表示法主要用于表示浮點(diǎn)數(shù)的階碼,可以直接比較大小。表示范圍和補(bǔ)碼相同,只有最高位相反。機(jī)器碼表示法小結(jié)第41頁,課件共173頁,創(chuàng)作于2023年2月由于補(bǔ)碼表示對加減法運(yùn)算十分方便,因此目前機(jī)器中廣泛采用補(bǔ)碼表示法。在這類機(jī)器中數(shù)用補(bǔ)碼表示,補(bǔ)碼存儲(chǔ),補(bǔ)碼運(yùn)算。(也有些機(jī)器,數(shù)用原碼進(jìn)行存儲(chǔ)和傳送,運(yùn)算時(shí)改用補(bǔ)碼。還有些機(jī)器在做加減法時(shí)用補(bǔ)碼運(yùn)算,在做乘除法時(shí)用原碼運(yùn)算)機(jī)器碼表示法小結(jié)第42頁,課件共173頁,創(chuàng)作于2023年2月[例3]以定點(diǎn)整數(shù)為例,用數(shù)軸形式說明原碼、反碼、補(bǔ)碼表示范圍和可能的數(shù)碼組合情況。

[解:]

原碼、反碼、補(bǔ)碼表示分別示于下圖。與原碼、反碼不同,在補(bǔ)碼表示中“0”只有一種形式,且用補(bǔ)碼表示負(fù)數(shù)時(shí)范圍可到-2n

。機(jī)器碼表示法小結(jié)第43頁,課件共173頁,創(chuàng)作于2023年2月[例4]將十進(jìn)制真值(-127,-1,0,+1,+127)列表表示成二進(jìn)制數(shù)及原碼、反碼、補(bǔ)碼、移碼值。

[解:]

二進(jìn)制真值x及其諸碼值列于下表,其中0在[x]原[x]反中有兩種表示。由表中數(shù)據(jù)可知,補(bǔ)碼值與移碼值差別僅在于符號(hào)位不同。機(jī)器碼表示法小結(jié)第44頁,課件共173頁,創(chuàng)作于2023年2月[例5]

設(shè)機(jī)器字長16位,定點(diǎn)表示,尾數(shù)15位,數(shù)符1位,問:

(1)定點(diǎn)原碼整數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少?

(2)定點(diǎn)原碼小數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少?

[解:](1)定點(diǎn)原碼整數(shù)表示

最大正數(shù)值=(215-1)10=(+32767)10

=0111111111111111

最小負(fù)數(shù)值=-(215-1)10=(-32767)10

=1111111111111111

(15個(gè)1)機(jī)器碼表示法小結(jié)(2)定點(diǎn)原碼小數(shù)表示

最大正數(shù)值=(1-2-15)10=(+0.111...11)2

最小負(fù)數(shù)值=-(1-2-15)10=(-0.111..11)2

第45頁,課件共173頁,創(chuàng)作于2023年2月[例6]假設(shè)由S,E,M三個(gè)域組成的一個(gè)32位二進(jìn)制字所表示的非零規(guī)格化浮點(diǎn)數(shù)x,真值表示為:

x=(-1)s×(1.M)×2E-128

問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小負(fù)數(shù)是多少?

[解:](1)最大正數(shù)11111111111111111111111111111110x=[1+(1-2-23)]×2127(2)最小正數(shù)

00000000000000000000000000000000x=1.0×2-128機(jī)器碼表示法小結(jié)第46頁,課件共173頁,創(chuàng)作于2023年2月(4)最大負(fù)數(shù)

00000000000000000000000000000000x=-1.0×2-128

11111111111111111111111111111111x=-[1+(1-2-23)]×2127

(3)最小負(fù)數(shù)機(jī)器碼表示法小結(jié)第47頁,課件共173頁,創(chuàng)作于2023年2月1.字符的表示方法

目前國際上普遍采用的字符系統(tǒng)是七單位的ASCII碼(美國國家信息交換標(biāo)準(zhǔn)字符碼),它包括10個(gè)十進(jìn)制數(shù)碼,26個(gè)英文字母和一定數(shù)量的專用符號(hào),如$,%,+,=等,共128個(gè)元素,因此二進(jìn)制編碼需7位,加一位偶校驗(yàn)位,共8位一個(gè)字節(jié)。

ASCII碼規(guī)定8個(gè)二進(jìn)制位的最高一位為0,余下的7位可以給出128個(gè)編碼,表示128個(gè)不同的字符。字符和字符串的表示方法2.1.3字符與字符串的表示方法第48頁,課件共173頁,創(chuàng)作于2023年2月表2.1ASCII字符編碼表0000010100111001011101110000NULDELSP0@Pp0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\1|1101CRGS-=M]m}1110SORS.>Nn~1111SIUS/?O_oDEL0-3位4-6位第49頁,課件共173頁,創(chuàng)作于2023年2月2.字符串字符串:是指連續(xù)的一串字符,通常方式下,它們依次占用主存中連續(xù)的多個(gè)字節(jié),每個(gè)字節(jié)存一個(gè)字符。[例]將字符串:

IF└┘A>B└┘THEN└┘READ(C)

從高位字節(jié)到低位字節(jié)依次存在主存中。[解:]設(shè):主存單元長度由4個(gè)字節(jié)組成。每個(gè)字節(jié)中存放相應(yīng)字符的ASCII值,文字表達(dá)式中的空格“└┘”在主存中也占一個(gè)字節(jié)的位置。因而每個(gè)字節(jié)分別存放十進(jìn)制的73、70、32、65、62、66、32、84、72、69、78、32、82、69、65、68、40、67、41、32。

字符和字符串的表示方法第50頁,課件共173頁,創(chuàng)作于2023年2月IF空A>B空THEN空READ(C)空主存各字節(jié)單元內(nèi)容字符和字符串的表示方法第51頁,課件共173頁,創(chuàng)作于2023年2月2.1.4漢字的表示方法1.漢字的輸入編碼包括:數(shù)字碼、拼音碼和字形碼數(shù)字碼:常用的是國標(biāo)區(qū)位碼,用數(shù)字串代表一個(gè)漢字輸入。數(shù)字編碼輸入的優(yōu)點(diǎn)是無重碼,且輸入碼與內(nèi)部編碼的轉(zhuǎn)換比較方便;缺點(diǎn)是代碼難以記憶。拼音碼:拼音碼是以漢字拼音為基礎(chǔ)的輸入方法。使用簡單方便,但漢字同音字太多,輸入重碼率很高,同音字選擇影響了輸入速度。字形碼:字形編碼是用漢字的形狀來進(jìn)行的編碼(例:五筆字型)。把漢字的筆劃部件用字母或數(shù)字進(jìn)行編碼,按筆劃的順序依次輸入,就能表示一個(gè)漢字。漢字的表示方法(漢字的輸入編碼)第52頁,課件共173頁,創(chuàng)作于2023年2月2.漢字內(nèi)碼

漢字內(nèi)碼是用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼,一般采用兩個(gè)字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的ASCII碼,當(dāng)用一個(gè)字節(jié)表示時(shí),最高位為“0”。為了與英文字符能相互區(qū)別,漢字機(jī)內(nèi)代碼中兩個(gè)字節(jié)的最高位均規(guī)定為“1”。注意:有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗(yàn)位,這種情況下用三個(gè)字節(jié)表示漢字內(nèi)碼。漢字的表示方法(漢字的內(nèi)碼)第53頁,課件共173頁,創(chuàng)作于2023年2月3.漢字字模碼字模碼是用點(diǎn)陣表示的漢字字形代碼,它是漢字的輸出形式。例如:字模碼漢字的表示方法(漢字字模碼)漢字的字模碼為:16位×16位=32字節(jié)第54頁,課件共173頁,創(chuàng)作于2023年2月注意到:字模點(diǎn)陣只能用來構(gòu)成漢字庫,而不能用于機(jī)內(nèi)存儲(chǔ)。字庫中存儲(chǔ)了每個(gè)漢字的點(diǎn)陣代碼,用于漢字的顯示輸出或打印輸出。當(dāng)顯示輸出或打印輸出時(shí)才檢索字庫,輸出字模點(diǎn)陣,得到字形。漢字的輸入編碼、漢字內(nèi)碼、字模碼是計(jì)算機(jī)中用于輸入、內(nèi)部處理、輸出三種不同用途的編碼,不要混為一談。漢字的表示方法(漢字字模碼)第55頁,課件共173頁,創(chuàng)作于2023年2月

各種因素常常導(dǎo)致計(jì)算機(jī)在處理信息過程中出現(xiàn)錯(cuò)誤。為了防止錯(cuò)誤,可將信號(hào)采用專門的邏輯線路進(jìn)行編碼以檢測錯(cuò)誤,甚至校正錯(cuò)誤。2.1.5校驗(yàn)碼最簡單且應(yīng)用廣泛的檢錯(cuò)碼方法是奇偶校驗(yàn)法,即:采用一位校驗(yàn)位的奇校驗(yàn)或偶校驗(yàn)的方法。設(shè)x=(x0x1…xn-1)是一個(gè)n位字,則奇校驗(yàn)位C定義為:C=x0⊕x1⊕…⊕xn-1式中⊕代表按位加,

只有當(dāng)x中包含有奇數(shù)個(gè)1時(shí),才使C=1,即C=0。同理,偶校驗(yàn)位C定義為:C=x0⊕x1⊕…⊕xn-1

即x中包含偶數(shù)個(gè)1時(shí),才使C=0。效驗(yàn)碼第56頁,課件共173頁,創(chuàng)作于2023年2月2.2定點(diǎn)加法減法運(yùn)算

2.20二進(jìn)制的運(yùn)算規(guī)則2.2.1補(bǔ)碼加法2.2.2補(bǔ)碼減法2.2.3溢出概念與檢驗(yàn)方法2.2.4基本的二進(jìn)制加法、減法器2.2.5十進(jìn)制加法器定點(diǎn)加減法運(yùn)算第57頁,課件共173頁,創(chuàng)作于2023年2月2.2.0二進(jìn)制數(shù)的運(yùn)算規(guī)則算術(shù)運(yùn)算:加法規(guī)則:補(bǔ)碼的加法0+0=0+1=1+0=1+1=01110益處例:110101+101101=110101101101+1010010第58頁,課件共173頁,創(chuàng)作于2023年2月2.2.0二進(jìn)制數(shù)的運(yùn)算規(guī)則算術(shù)運(yùn)算:減法規(guī)則:補(bǔ)碼的加法0-0=0-1=1-0=1-1=0110向高位借位例:110101-101101=110101101101-001000注:當(dāng)被減數(shù)小于減數(shù)的時(shí)候,可以將其互換位置,結(jié)果為負(fù)號(hào)。第59頁,課件共173頁,創(chuàng)作于2023年2月2.2.0二進(jìn)制數(shù)的運(yùn)算規(guī)則算術(shù)運(yùn)算:乘法規(guī)則:補(bǔ)碼的加法0*0=0*1=1*0=1*1=0001例:110101*101101=110101101101*100101第60頁,課件共173頁,創(chuàng)作于2023年2月2.2.0二進(jìn)制數(shù)的運(yùn)算規(guī)則算術(shù)運(yùn)算:除法規(guī)則:補(bǔ)碼的加法0/1=1/1=01例:110111/101=11011110110111110110110101011第61頁,課件共173頁,創(chuàng)作于2023年2月2.2.0二進(jìn)制數(shù)的運(yùn)算規(guī)則邏輯運(yùn)算:邏輯或規(guī)則:補(bǔ)碼的加法0+0=0+1=1+0=1+1=0111例:110101+101101=110101101101+111101用“V”或“+”表示:第62頁,課件共173頁,創(chuàng)作于2023年2月2.2.0二進(jìn)制數(shù)的運(yùn)算規(guī)則邏輯運(yùn)算:邏輯與規(guī)則:補(bǔ)碼的加法0。0=0。1=1。0=1。1=0001例:110101.101101=110101101101。100101用“/\”或“.”表示:第63頁,課件共173頁,創(chuàng)作于2023年2月2.2.0二進(jìn)制數(shù)的運(yùn)算規(guī)則邏輯運(yùn)算:邏輯非規(guī)則:補(bǔ)碼的加法0=1=10例:110101=001010用“-”表示:第64頁,課件共173頁,創(chuàng)作于2023年2月2.2.0二進(jìn)制數(shù)的運(yùn)算規(guī)則邏輯運(yùn)算:邏輯異或規(guī)則:補(bǔ)碼的加法0⊕0=0⊕1=1⊕0=1⊕1=0110例:110101⊕101101=110101101101⊕011000用⊕或表示:第65頁,課件共173頁,創(chuàng)作于2023年2月2.2.1原碼加法符號(hào)位相同的原碼相加:直接相加符號(hào)位不同的原碼相加:做減法運(yùn)算補(bǔ)碼的加法[例]:x=+0.1001,

y=+0.0101(+0.1001)

+(+0.0101)

+0.1110

所以x+y=+0.1110第66頁,課件共173頁,創(chuàng)作于2023年2月2.2.1原碼加法符號(hào)位相同的原碼相加:直接相加符號(hào)位不同的原碼相加:做減法運(yùn)算補(bǔ)碼的加法[例]:x=+0.1001,

y=-0.0101(+0.1001)

-(-0.0101)

+0.1110

所以x+y=+0.1110第67頁,課件共173頁,創(chuàng)作于2023年2月2.2.1補(bǔ)碼加法補(bǔ)碼加法的公式是:[x]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)(mod2)

補(bǔ)碼的加法[例8]:[x]補(bǔ)=0.1001,[y]補(bǔ)=0.0101[x]補(bǔ)

0.1001+[y]補(bǔ)

0.0101

[x+y]補(bǔ)

0.1110

所以x+y=+0.1110第68頁,課件共173頁,創(chuàng)作于2023年2月[例9]:x=+0.1011,

y=-0.0101,求x+y。[解:][x]補(bǔ)=0.1011,[y]補(bǔ)=1.1011[x]補(bǔ)

0.1011+[y]補(bǔ)1.1011

[x+y]補(bǔ)

10.0110

所以x+y=最高位1自行丟失可見,補(bǔ)碼加法的特點(diǎn)為:

1、符號(hào)位作為數(shù)的一部分直接參加運(yùn)算;

2、要在模2的意義下相加,即超過2的進(jìn)位要自動(dòng)丟掉。整數(shù)的計(jì)算同樣適合,只是模不同。補(bǔ)碼的加法第69頁,課件共173頁,創(chuàng)作于2023年2月2.2.2補(bǔ)碼減法補(bǔ)碼的減法公式如下:[x-y]補(bǔ)=[x]補(bǔ)-[y]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)補(bǔ)碼的減法[例10]

已知x1=-0.1110,x2=+0.1101,

求:[x1]補(bǔ),[-x1]補(bǔ),

[x2]補(bǔ),[-x2]補(bǔ)。[解:]

[x1]補(bǔ)=1.0010[-x1]補(bǔ)=0.1110[x2]補(bǔ)=[-x2]補(bǔ)=0.11011.0011第70頁,課件共173頁,創(chuàng)作于2023年2月[例11]

x=+0.1101,

y=+0.0110,

求x-y。[解]:[x]補(bǔ)=0.1101

[y]補(bǔ)=0.0110,[-y]補(bǔ)=1.1010[x]補(bǔ)

0.1101+[-y]補(bǔ)

1.1010

[x-y]補(bǔ)

補(bǔ)碼的減法所以:x-y=+0.011110.0111溢出、舍掉第71頁,課件共173頁,創(chuàng)作于2023年2月[又例]

x=+0.0111,y=-0.0110,求x-y。[解]:

[x]補(bǔ)=0.0111

[y]補(bǔ)=1.1010

[-y]補(bǔ)=0.0110

[x]補(bǔ)

0.0111+[-y]補(bǔ)

0.0110

[x-y]補(bǔ)

所以:

x-y=補(bǔ)碼的減法0.1101>00.1101第72頁,課件共173頁,創(chuàng)作于2023年2月[又例]

x=+0.0110,y=+0.1110,求x-y。[解]:

[x]補(bǔ)=0.0110

[y]補(bǔ)=0.1110

[-y]補(bǔ)=1.0010

[x]補(bǔ)

0.0110+[-y]補(bǔ)

1.0010

[x-y]補(bǔ)

所以:

x-y=補(bǔ)碼的減法1.1000-0.1000第73頁,課件共173頁,創(chuàng)作于2023年2月2.2.3溢出概念與檢測方法

以定點(diǎn)小數(shù)為例:在定點(diǎn)小數(shù)機(jī)器中,數(shù)的表示范圍為|x|<1.在運(yùn)算過程中如出現(xiàn)大于1的現(xiàn)象,稱為“溢出”。(這在定點(diǎn)機(jī)中是不允許的)

機(jī)器定點(diǎn)小數(shù)表示如:兩個(gè)正數(shù)相加,結(jié)果為負(fù)(即:大于機(jī)器所能表示的最大正數(shù)),稱為上溢。而兩個(gè)負(fù)數(shù)相加,結(jié)果為正(即:小于機(jī)器所能表示的最小負(fù)數(shù)),稱為下溢。溢出概念與檢測方法第74頁,課件共173頁,創(chuàng)作于2023年2月[例12]

x=+0.1011,

y=+0.1001,

求x+y。[解:]

[x]補(bǔ)=0.1011,[y]補(bǔ)=0.1001[x]補(bǔ)

0.1011+[y]補(bǔ)

0.1001[x+y]補(bǔ)

溢出概念與檢測方法有進(jìn)位無進(jìn)位1.0100兩正數(shù)相加,結(jié)果為負(fù),顯然錯(cuò)誤。(運(yùn)算中出現(xiàn)了“上溢”)第75頁,課件共173頁,創(chuàng)作于2023年2月[又例]

x=+0.1011,

y=+0.0010,

求x+y。[解:]

[x]補(bǔ)=0.1011,[y]補(bǔ)=0.1001[x]補(bǔ)

0.1011+[y]補(bǔ)

0.0010[x+y]補(bǔ)

溢出概念與檢測方法無進(jìn)位無進(jìn)位0.1101兩正數(shù)相加,結(jié)果為正,無溢出第76頁,課件共173頁,創(chuàng)作于2023年2月[例13]

x=-0.1101,

y=-0.1011,

求x+y。[解:]

[x]補(bǔ)=1.0011[y]補(bǔ)=1.0101

[x]補(bǔ)

1.0011

+[y]補(bǔ)

1.0101[x+y]補(bǔ)

兩負(fù)數(shù)相加,結(jié)果為正,顯然錯(cuò)誤。(運(yùn)算中出現(xiàn)了“下溢”)溢出概念與檢測方法10.1000有溢出第77頁,課件共173頁,創(chuàng)作于2023年2月[又例]

x=-0.1101,

y=-0.1011,

求x+y。[解:]

[x]補(bǔ)=1.0011[y]補(bǔ)=1.0101

[x]補(bǔ)

1.0011

+[y]補(bǔ)

1.0101[x+y]補(bǔ)

兩負(fù)數(shù)相加,結(jié)果為正,顯然錯(cuò)誤。(運(yùn)算中出現(xiàn)了“下溢”)溢出概念與檢測方法無進(jìn)位有進(jìn)位0.1000第78頁,課件共173頁,創(chuàng)作于2023年2月[又例]

x=-0.1101,

y=-0.0010,

求x+y。[解:]

[x]補(bǔ)=1.0011[y]補(bǔ)=1.1110

[x]補(bǔ)

1.0011

+[y]補(bǔ)

1.1110[x+y]補(bǔ)

1.0001兩負(fù)數(shù)相加,結(jié)果為負(fù),無溢出。溢出概念與檢測方法有進(jìn)位有進(jìn)位第79頁,課件共173頁,創(chuàng)作于2023年2月產(chǎn)生“溢出”的原因:

分析可知,當(dāng)最高有效數(shù)值位的運(yùn)算進(jìn)位與符號(hào)位的運(yùn)算進(jìn)位不一致時(shí),將產(chǎn)生運(yùn)算“溢出”。進(jìn)一步結(jié)論:

當(dāng)最高有效位產(chǎn)生進(jìn)位而符號(hào)位無進(jìn)位時(shí),產(chǎn)生上溢;當(dāng)最高有效位無進(jìn)位而符號(hào)位有進(jìn)位時(shí),產(chǎn)生下溢。溢出概念與檢測方法第80頁,課件共173頁,創(chuàng)作于2023年2月“溢出”檢測方法:

為了判斷“溢出”是否發(fā)生,可采用兩種檢測的方法。第一種方法:采用雙符號(hào)位法,這稱為“變形補(bǔ)碼”或“模4補(bǔ)碼”,從而可使模2補(bǔ)碼所能表示的數(shù)的范圍擴(kuò)大一倍。變形補(bǔ)碼定義為(mod4)

:x2>x≥04+x=4-|x|0≥

x≥-2(2.22)溢出概念與檢測方法或用同余式表示:[x]補(bǔ)=4+x(mod4)下式也同樣成立:

[x]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)

(mod4)第81頁,課件共173頁,創(chuàng)作于2023年2月

1.兩個(gè)符號(hào)位都看作數(shù)碼一樣參加運(yùn)算。

2.兩數(shù)進(jìn)行以4位模的加法,即最高符號(hào)位上產(chǎn)生的進(jìn)位要丟掉。

采用變形補(bǔ)碼后,如果兩個(gè)數(shù)相加后,其結(jié)果的符號(hào)位出現(xiàn)“01”或“10”兩種組合時(shí),表示發(fā)生溢出。這是因?yàn)閮蓚€(gè)絕對值小于1的數(shù)相加,其結(jié)果不會(huì)大于或等于2。所以,最高符號(hào)位所表示的是結(jié)果的正確符號(hào)。溢出概念與檢測方法為了得到兩數(shù)變形補(bǔ)碼之和等于兩數(shù)之和的變形補(bǔ)碼,

同樣必須:第82頁,課件共173頁,創(chuàng)作于2023年2月

[例14]

x=+0.1100,

y=+0.1000,求x+y。溢出概念與檢測方法[解]

:

[x]補(bǔ)=00.1100,[y]補(bǔ)=00.1000

[x]補(bǔ)

00.1100

+[y]補(bǔ)

00.1000

兩個(gè)符號(hào)位出現(xiàn)“01”,表示已溢出,即結(jié)果大于+1。上溢01.0100第83頁,課件共173頁,創(chuàng)作于2023年2月

[又例]

x=+0.1100,

y=+0.0001,求x+y。溢出概念與檢測方法[解]

:

[x]補(bǔ)=00.1100,[y]補(bǔ)=00.1000

[x]補(bǔ)

00.1100

+[y]補(bǔ)

00.0001

兩個(gè)符號(hào)位=“00”,表示無溢出。00.1101第84頁,課件共173頁,創(chuàng)作于2023年2月

[例15]

x=-0.1100,

y=-0.1000,求x+y。溢出概念與檢測方法[解]

:

[x]補(bǔ)=11.0100,[y]補(bǔ)=11.1000

[x]補(bǔ)

11.0100+[y]補(bǔ)

11.1000

兩個(gè)符號(hào)位出現(xiàn)“10”,表示已溢出,即結(jié)果小于-1。下溢10.1100第85頁,課件共173頁,創(chuàng)作于2023年2月

[又例]

x=-0.0100,

y=-0.1000,求x+y。溢出概念與檢測方法[解]

:

[x]補(bǔ)=11.1100,[y]補(bǔ)=11.1000

[x]補(bǔ)

11.1100+[y]補(bǔ)

11.1000

兩個(gè)符號(hào)位出現(xiàn)“11”,表示無溢出。11.0100第86頁,課件共173頁,創(chuàng)作于2023年2月溢出概念與檢測方法由此可以得出如下結(jié)論:1.當(dāng)以模4補(bǔ)碼運(yùn)算,運(yùn)算結(jié)果的二符號(hào)位相異時(shí),表示溢出;相同時(shí),表示未溢出。故溢出邏輯表達(dá)式為

V=Sf1⊕Sf2,其中Sf1和Sf2分別為最高符號(hào)位和第二符號(hào)位。此邏輯表達(dá)式可用異或門實(shí)現(xiàn)。2.模4補(bǔ)碼相加的結(jié)果,不論溢出與否,最高符號(hào)位始終指示正確的符號(hào)。

第87頁,課件共173頁,創(chuàng)作于2023年2月溢出概念與檢測方法

第二種溢出檢測方法:采用“單符號(hào)位法”。從例1和例2中看到:(1).當(dāng)最高有效位產(chǎn)生進(jìn)位而符號(hào)位無進(jìn)位時(shí),產(chǎn)生上溢;(2).當(dāng)最高有效位無進(jìn)位而符號(hào)位有進(jìn)位時(shí),產(chǎn)生下溢。

故:溢出邏輯表達(dá)式為:

V=Cr⊕Co其中:

Cf為符號(hào)位產(chǎn)生的進(jìn)位,Co為最高有效位產(chǎn)生的進(jìn)位。(顯然:此邏輯關(guān)系可用異或門方便地實(shí)現(xiàn))。

在定點(diǎn)機(jī)中,當(dāng)運(yùn)算結(jié)果發(fā)生溢出時(shí),機(jī)器通過邏輯電路自動(dòng)檢查出溢出故障,并進(jìn)行中斷處理。

第88頁,課件共173頁,創(chuàng)作于2023年2月2.3定點(diǎn)乘法運(yùn)算

2.3.1原碼一位乘法及其實(shí)現(xiàn)2.3.2定點(diǎn)補(bǔ)碼一位乘法及其實(shí)現(xiàn)2.3.3原碼兩位乘法2.3.4補(bǔ)碼兩位乘法2.3.5定點(diǎn)除法及其實(shí)現(xiàn)定點(diǎn)乘法運(yùn)算第89頁,課件共173頁,創(chuàng)作于2023年2月2.3.1原碼一位乘法及其實(shí)現(xiàn)在定點(diǎn)計(jì)算機(jī)中,用兩個(gè)原碼表示的數(shù)相乘,其乘積的符號(hào)由兩數(shù)的符號(hào)位異或得到,乘積的數(shù)值部分是兩數(shù)的絕對值相乘之積。例如,有兩個(gè)數(shù)X和Y,[X]原=XsX1X2

…Xn[Y]原=YsY1Y2

…Yn則[X*Y]原=[X]原*[Y]原。乘積的符號(hào)位為:Xs⊕Ys乘積的數(shù)值部分為:(X1X2

…Xn)*(Y1Y2

…Yn)。第90頁,課件共173頁,創(chuàng)作于2023年2月例如:X=0.1001,Y=0.1101求Z=X*Y

解:0.1001X0.110110010000100110010.01110101得到相乘結(jié)果X*Y=0.01110101第91頁,課件共173頁,創(chuàng)作于2023年2月 在計(jì)算機(jī)中實(shí)現(xiàn)乘法運(yùn)算的方法是:移們相加,即采用部分積右移的方法。其運(yùn)算規(guī)則是:根據(jù)乘數(shù)Y絕對值每個(gè)數(shù)位上的值Yi是“1”還是“0”(從最低位Y0開始),決定本次部分積是加上被乘數(shù)X的絕對值,還是加上全“0”,得到的新部分積右移一位,再重復(fù)上面的動(dòng)作,直到乘法做完為止。

第92頁,課件共173頁,創(chuàng)作于2023年2月【例4.20】X=+11010,Y=+10110,求Z=X*Y

解:[X]原=0.11010,[Y]原=0.10110乘積的符號(hào)位Z0=0⊕0=0乘積的數(shù)值部分是兩數(shù)的絕對值相乘。開始時(shí),部分積為全“0”。第93頁,課件共173頁,創(chuàng)作于2023年2月所得結(jié)果Z=+0.1000111100。有時(shí)部分積的符號(hào)位出現(xiàn)“1”,并不是出現(xiàn)了負(fù)數(shù),而是部分積的值超出了“1”,右移時(shí)符號(hào)位應(yīng)補(bǔ)“0”。

第94頁,課件共173頁,創(chuàng)作于2023年2月部分積乘數(shù)判別位0.000000101101

X=110101,y=101101,求x*y+0.110101101101

+0.110101101101

+0.011010110110

1

+0.000000110110

1

+0.011010110110

1

+0.001101011011

0

1

+0.110101011011

01+1.000010011011

01第95頁,課件共173頁,創(chuàng)作于2023年2月部分積乘數(shù)判別位X=110101,y=101101,求x*y+1.000010011011

01+0.1000010

01101

1

01+0.1101010

01101

1

01+1.0101100

01101

1

01+0.1010110

0

0110

1

1

01+0.0000000

0

0110

1

1

01+0.1010110

0

0110

1

1

01+0.01010110

0

01

1

0

1

1

01+0.11010110

0

01

1

0

1

1

01+1.00101010

0

01

1

0

1

1

01+0.100101010

0

01

1

0

1

1

01第96頁,課件共173頁,創(chuàng)作于2023年2月要實(shí)現(xiàn)原碼一位乘法,乘積的符號(hào)可以用異或門實(shí)現(xiàn),異或門的兩個(gè)輸入為相乘兩數(shù)的符號(hào),輸出即為乘積的符號(hào)。下圖給出了實(shí)現(xiàn)原碼一位乘法的邏輯電路框圖,以實(shí)現(xiàn)對相乘兩數(shù)的數(shù)值位相乘。

實(shí)現(xiàn)原碼一位乘法的邏輯電路框圖

RS基本觸發(fā)器時(shí)鐘脈沖判別位第97頁,課件共173頁,創(chuàng)作于2023年2月主要組成部件有:寄存器A,存放計(jì)算的部分積Z,具有自動(dòng)移位功能;寄存器B,存放被乘數(shù)X;寄存器C,存放乘數(shù)Y,具有自動(dòng)移位功能;加法器F,進(jìn)行部分積和被乘數(shù)相加;計(jì)數(shù)器i,用來控制逐位相乘的次數(shù)??刂菩盘?hào)A→F、B→F分別通過與門控制部分積、被乘數(shù)送入加法器F進(jìn)行相加;控制信號(hào)A/2→A、C/2→C分別控制寄存器A、C自行右移一位。第98頁,課件共173頁,創(chuàng)作于2023年2月2.3.2定點(diǎn)補(bǔ)碼一位乘法及其實(shí)現(xiàn)(重點(diǎn))假設(shè)兩個(gè)數(shù)X和Y相乘,X=x0.x1x2x3…xn;Y=y0.y1y2y3…y兩個(gè)正數(shù)補(bǔ)碼數(shù)相乘,其結(jié)果應(yīng)直接得到乘積的補(bǔ)碼: [X]補(bǔ)*[Y]補(bǔ)=[X*Y]補(bǔ)因?yàn)椋?/p>

[X*Y]補(bǔ)=X*Y=[X]原*[Y]原=[X]補(bǔ)*[Y]補(bǔ)那么:X、Y為任意符號(hào)呢?第99頁,課件共173頁,創(chuàng)作于2023年2月⑴當(dāng)被乘數(shù)X的符號(hào)為任意,乘數(shù)Y的符號(hào)為正。因?yàn)閅≥0,[Y]補(bǔ)=Y,則[X]補(bǔ)*[Y]補(bǔ)=[X]補(bǔ)*Y=[X*Y]補(bǔ)由于:[X]補(bǔ)*[Y]補(bǔ)=[X]補(bǔ)*Y =[X]補(bǔ)*(0.y1y2y3…yn)

=[X*Y]補(bǔ)第100頁,課件共173頁,創(chuàng)作于2023年2月⑵當(dāng)被乘數(shù)X的符號(hào)為任意,乘數(shù)Y的符號(hào)為負(fù)。因?yàn)閅<0,則(3)綜上所述:這種情況,結(jié)果應(yīng)該進(jìn)行修正,把【X】補(bǔ)*2n作為修正值,其運(yùn)算規(guī)則如下:A、符號(hào)位參加運(yùn)算,結(jié)果和符號(hào)由運(yùn)算結(jié)果得出,重復(fù)執(zhí)行N步右移操作進(jìn)行相加;B、當(dāng)乘數(shù)Y為負(fù)數(shù)時(shí),需進(jìn)行N+1步操作,進(jìn)行修正。C、當(dāng)被乘數(shù)X與乘數(shù)Y均為任意的情況時(shí),應(yīng)該用比較法補(bǔ)碼乘法。既BOOTH法第101頁,課件共173頁,創(chuàng)作于2023年2月⑶BOOTH法假設(shè)兩個(gè)數(shù)X和Y相乘,X=x0.x1x2x3…xn;Y=y0.y1y2y3…y當(dāng)被乘數(shù)X和乘數(shù)Y的符號(hào)都任意時(shí)侯。

[X*Y]補(bǔ)=[X]補(bǔ)*(0.y1y2y3…yn)-[X]補(bǔ)*y0

=[X]補(bǔ)*(-y0+0.y1y2y3…yn)

=[X]補(bǔ)*(-y0+y1*2-1+y2*2-2+y3*2-3…yn*2-n)=[X]補(bǔ)*{(y1-y0)+(y2-y1)*2-1+(y3-y2)*2-2+(y4-y3) *2-3…(yn-yn-1)*2-(n-1)+(0-yn)*2-n}第102頁,課件共173頁,創(chuàng)作于2023年2月寫成遞推公式:[Z0]補(bǔ)=0[Z1]補(bǔ)=2-1*{[Z0]補(bǔ)+(Yn+1-Yn)*[X]補(bǔ)

}

Yn+1=0[Z2]補(bǔ)=2-1*{([Z1]補(bǔ)+(Yn-Yn-1)*[X]補(bǔ))}[Z3]補(bǔ)=2-1*{([Z2]補(bǔ)+(Yn-1-Yn-2)*[X]補(bǔ))} ┇[Zi]補(bǔ)=2-1*{([Zi-1]補(bǔ)+(Yn-i+2-Yn-i+1)*[X]補(bǔ))} ┇[Zn+1]補(bǔ)=([Zn]補(bǔ)+(Y1-Y0)*[X]補(bǔ))最后乘積為[Zn+1]補(bǔ)式中,Yn+1為附加位,在Yn+1以后,Yn+1=0。第103頁,課件共173頁,創(chuàng)作于2023年2月由此,可以總結(jié)出比較法補(bǔ)碼乘法的規(guī)則:在作補(bǔ)碼一位乘法時(shí),在乘數(shù)的最末位后面再加一位附加位yn+1。開始時(shí),yn+1=0,第一步運(yùn)算是根據(jù)yn+1yn這兩位的值判斷后決定,然后再根據(jù)ynyn-1這兩位的值判斷第二步該作什么運(yùn)算,再根據(jù)yn-2yn-3這兩位的值判斷第三步該作什么運(yùn)算,如此等等。因?yàn)槊窟M(jìn)行一步,乘數(shù)都要右移一位,yn-1yn

就移到y(tǒng)nyn+1位置上。作第三步時(shí),原來的yn-2yn-1移到了yn-1yn位置上。所以每次只要判斷ynyn+1這兩位的值就行。判斷規(guī)則如表4-1所示。第104頁,課件共173頁,創(chuàng)作于2023年2月補(bǔ)碼一位比較乘法規(guī)則

第105頁,課件共173頁,創(chuàng)作于2023年2月比較法計(jì)算用流程圖表示第106頁,課件共173頁,創(chuàng)作于2023年2月【例4.20】利用補(bǔ)碼一位乘法計(jì)算Z=X*Y,其中X=-0.1101,Y=0.1011。解:[X]補(bǔ)=11.0011,[Y]補(bǔ)=0.1011,[-X]補(bǔ)=00.1101 乘積的數(shù)值部分是兩數(shù)的絕對值相乘。開始時(shí),部分積為全“0”。所以[X*Y]補(bǔ)=11.01110001,結(jié)果Z=X*Y=-0.10001111。

第107頁,課件共173頁,創(chuàng)作于2023年2月

部分積乘數(shù)/判別位說明

00.0000010110yn+1=0判別位10+[-x]補(bǔ)00.1101部分積加+[-x]補(bǔ)

00.110100.0110101011右移1位,判別位1100.0011010101右移1位,判別位01+[x]補(bǔ)

11.0011+[x]補(bǔ)

11.0110

11.1011001010右移1位,判別位10+[-x]補(bǔ)00.1101+[-x]補(bǔ)

00.100000.0100000101右移1位,判別位01+[x]補(bǔ)11.0011+[x]補(bǔ)

11.01110001最后一步不移位注:補(bǔ)碼運(yùn)算,符號(hào)位參加運(yùn)算第108頁,課件共173頁,創(chuàng)作于2023年2月實(shí)現(xiàn)一位補(bǔ)碼乘法的邏輯原理圖如圖4-4所示。它與一位原碼乘法的邏輯原理圖有些相似,不同的地方有以下幾點(diǎn):⑴被乘數(shù)和乘數(shù)的符號(hào)位參加運(yùn)算;⑵乘數(shù)寄存器C有附加位Yn+1,其初始狀態(tài)為“0”。當(dāng)乘數(shù)和部分積每次右移時(shí),部分積最低位移入寄存器C的首位位置,所以寄存器C必須是具有右移功能的寄存器。⑶被乘數(shù)寄存器B的每一位用原碼或反碼(可用觸發(fā)器的Q端或端輸出)經(jīng)多路開關(guān)傳送到加法器對應(yīng)位的一個(gè)輸入端,而多路開關(guān)的控制信號(hào)由Yn-1、Yn的輸出譯碼器產(chǎn)生。當(dāng)Yn-1Yn=01時(shí),送[X]補(bǔ);當(dāng)Yn-1Yn=10時(shí),送[-X]補(bǔ),即送寄存器B內(nèi)容的反碼且在加法器末位加1。⑷寄存器A用來保存部分積,該寄存器也應(yīng)具有右移的功能,其符號(hào)位與加法器的符號(hào)位始終一致。⑸當(dāng)計(jì)數(shù)器i=n+1時(shí),封鎖A/2→A,C/2→C控制信號(hào),使最后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論