第三講 定點運算(加減法)_第1頁
第三講 定點運算(加減法)_第2頁
第三講 定點運算(加減法)_第3頁
第三講 定點運算(加減法)_第4頁
第三講 定點運算(加減法)_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三講定點運算(一)本講主要內容移位運算補碼加法補碼減法益處概念與檢測方法基本的二進制加法/減法器一、移位運算1.移位的意義15m=1500cm小數點右移2位機器用語15相對于小數點左移2位(小數點不動)..左移絕對值擴大右移絕對值縮小在計算機中,移位與加減配合,能夠實現乘除運算2.算術移位規則1右移添1左移添00反碼補碼原碼負數0原碼、補碼、反碼正數添補代碼碼制符號位不變例16設機器數字長為8位(含1位符號位),寫出A=+26時,三種機器數左、右移一位和兩位后的表示形式及對應的真值,并分析結果的正確性。解:A=+26則[A]原

=[A]補

=[A]反

=0,0011010

+

60,0000110

+130,0001101+1040,1101000

+

520,0110100

+260,0011010移位前[A]原=[A]補=[A]反對應的真值機器數移位操作=+11010左移一位左移兩位右移一位右移兩位例17設機器數字長為8位(含1位符號位),寫出A=–26時,三種機器數左、右移一位和兩位后的表示形式及對應的真值,并分析結果的正確性。解:A=–26

–61,0000110

–131,0001101–1041,1101000

–521,0110100

–261,0011010移位前對應的真值機器數移位操作原碼=–11010左移一位左移兩位右移一位右移兩位

–61,1111001

–131,1110010

–1041,0010111

–521,1001011–261,1100101移位前對應的真值機器數移位操作

–71,1111001

–131,1110011

–1041,0011000

–521,1001100–261,1100110移位前對應的真值機器數移位操作補碼反碼左移一位左移兩位右移一位右移兩位左移一位左移兩位右移一位右移兩位3.算術移位的硬件實現(a)真值為正(b)負數的原碼(c)負數的補碼(d)負數的反碼00010丟

1丟

1出錯影響精度出錯影響精度正確影響精度正確正確4.算術移位和邏輯移位的區別算術移位有符號數的移位邏輯移位無符號數的移位邏輯左移邏輯右移低位添0,高位移丟高位添0,低位移丟例如

01010011邏輯左移10100110邏輯右移01011001算術左移算術右移0010011011011001(補碼)高位1移丟010100110Cy010100110010110010加法規則:先判符號位,若相同,絕對值相加,結果符號不變;若不同,則作減法,|大|-|小|,結果符號與|大|相同。減法規則:兩個原碼表示的數相減,首先將減數符號取反,然后將被減數與符號取反后的減數按原碼加法進行運算。二、補碼加/減法1.原碼加/減法運算公式:[x]補+[y]補

=[x+y]補

證明:假設︱x︱﹤1,︱y︱﹤1,︱x+y︱﹤1現分四種情況來證明(1)x﹥0,y﹥0,則x+y﹥0[x]補=x,[y]補=y,[x+y]補=x+y

所以等式成立.(2)x﹥0,y﹤0,則x+y>0或x+y<0[x]補=x,[y]補=2+y,[x]補+[y]補=x+2+y當x+y>0時,2+(x+y)>2,進位2必丟失,又因(x+y)>0,故[x]補+[y]補=x+y=[x+y]補

當x+y<0時,2+(x+y)<2,又因(x+y)<0,故[x]補+[y]補=2+(x+y)=[x+y]補

所以上式成立2、補碼加法運算(3)x<0,y>0,則x+y>0或x+y<0這種情況和第2種情況一樣,把x和y的位置對調即得證。(4)x<0,y<0,則x+y<0相加兩數都是負數,則其和也一定是負數。∵[x]補=2+x,

[y]補=2+y

∴[x]補+[y]補=2+x+2+y=2+(2+x+y)上式右邊分為”2”和(2+x+y)兩部分.既然(x+y)是負數,而其絕對值又小于1,那么(2+x+y)就一定是小于2而大于1的數,進位”2”必丟失.又因(x+y)<0,所以

[x]補+[y]補=2+(x+y)=[x+y]補

連同符號位一起相加,符號位產生的進位自然丟掉

至此證明了在模2意義下,任意兩數的補碼之和等于該兩數之和的補碼。

其結論也適用于定點整數。補碼加法的特點:

(1)符號位要作為數的一部分一起參加運算;(2)在模2的意義下相加,即大于2的進位要丟掉。結論:3、補碼減法運算連同符號位一起相加,符號位產生的進位自然丟掉公式:

[x-y]補=

[x]補+[-y]補

舉例解:[A]補[B]補[A]補

+[B]補+=0.1011=1.1011=10.0110=[A+B]補驗證例18設A=0.1011,B=–

0.0101求[A+B]補0.1011–0.01010.0110∴A+B

=0.0110[A]補[B]補[A]補

+[B]補+=1,0111=1,1011=11,0010=[A+B]補驗證–1001–1110–0101+例19設A=–9,B=–5求[A+B]補解:∴A+B

=–1110例20設機器數字長為8位(含1位符號位)且A=15,B=24,用補碼求A

–B解:A=15=0001111B=24=0011000[A]補

+[–

B]補+[A]補=0,0001111[–

B]補=1,1101000=1,1110111=[A

B]補[B]補

=0,0011000練習1設x=y=,用補碼求x+y9161116x+y=–0.1100=1216–練習2設機器數字長為8位(含1位符號位)且A=–97,B=+41,用補碼求A

BA

–B=+1110110=+118∴A

–B=–1001=–9錯錯4、溢出概念與檢測方法引入:可能產生溢出的情況:

兩正數加,變負數,正溢(大于機器所能表示的最大數)

兩負數加,變正數,負溢(小于機器所能表示的最小數)

溢出判斷方法(1)一位符號位判溢出參加操作的兩個數(減法時即為被減數和“求補”以后的減數)符號相同,其結果的符號與原操作數的符號不同,即為溢出單符號位法的硬件實現Cf

C0

00正確(正數)

01上溢

10下溢

11正確(負數)V=Cf⊕C0

其中Cf為符號位產生的進位,C0為最高有效位產生V=1有溢出V=0無溢出(2)兩位符號位判溢出[x]補'

=

x1>x≥0

4+x0>x≥–1(mod4)[x]補'+[y]補'=[x+y]補'

(mod4)[x

–y]補'=[x]補'+[–

y]補'

(mod4)結果的雙符號位相同

未溢出結果的雙符號位不同

溢出最高符號位代表其真正的符號00.×××××11.×××××10.×××××01.×××××00,×××××11,×××××10,×××××01,×××××舉例例

x=+01100,y=+01000求x+y

x=-1100,y=-1000求x+y

從上面例中看到:當最高有效位有進位而符號位無進位時,產生上溢;當最高有效位無進位而符號位有進位時,產生下溢。

(簡單地說是正數相加為負數或負數相加為正數則產生溢出)故溢出邏輯表達式為:V=Cf⊕Co

其中Cf為符號位產生的進位,Co為最高有效位產生的進位。此邏輯表達式也可用異或門實現。(3)利用進位值的判別法

[x]補

00.1100+[y]補

00.1000

01.1000

[x]補

11.0100+[y]補

11.1000

10.1100FAVz0y0x0判斷電路

(1)單符號位法判斷電路FAFAz1z0Vc1c0y1x1y0x

溫馨提示

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

評論

0/150

提交評論