




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1第3章運算方法和運算部件3本章知識要點1.掌握數據信息的表示方法,包括原碼、補碼、反碼及定、浮點數的表示方法;2.掌握定點數的加、減、乘、除運算方法,了解浮點運算方法;3.掌握定點運算器的組成與結構,了解浮點運算器的基本結構;4.掌握奇偶校驗、海明校驗,了解循環冗余校驗。43.1數據的表示方法和轉換3.1.1數值型數據的表示和轉換計算機中使用二進制計數制基2碼:在物理上容易實現編碼、計數、加減運算規則簡單基2碼中的0和1與邏輯上的真與假對應51、(進位計)數制進位計數制:用少量的數字符號(也稱數碼),按先后次序把它們排成數位,由低到高進行計數,計滿進位,這樣的方法稱為進位計數制基數:進位制的基本特征數,即所用到的數字符號個數。例如,十進制:0~9十個數碼表示,基數為10權:進位制中各位“1”所表示的值為該位的權常見的進位制:2,8,10,16進制6十進制(Decimal)基數:10;符號:0,1,2,3,4,5,6,7,8,9計算規律:“逢十進一”或“借一當十”并列表示:N10=dn-1dn-2???d1d0.d-1d-2???d-m十進制數的多項式表示:N10=dn-1×10n-1+
dn-2×10n-2+
???d1×101+
d0×100+
d-1×10-1+
d-2×10-2+???d-m×10-mm,n為正整數,其中n為整數位數;m為小數位數。Di表示第i位的系數,10i稱為該位的權。7例如:一個十進制數123.45的表示123.45=1×102+2×101+3×100+4×10-1+5×10-2等式左邊為并列表示法,等式右邊為多項式表示法8二進制(Binary)基數:2符號:0,1計算規律:逢二進一或借一當二二進制的多項式表示:N2=dn-1×2n-1+
dn-2×2n-2+
????d1×21+
d0×20+
d-1×2-1+
d-2×2-2+???d-m×2-m
其中n為整數位數;m為小數位數。Di表示第i位的系數,2i稱為該位的權.
9
二進制數(N)2按多項式展開,可計算得該數的十進制值。 (1101.0101)2=(1·23+1·22+0·21+1·20+0·2-1+1·2-2+0·2-3+1·2-4)10=(8+4+0+1+0+0.25+0+0.0625)10=(13.3125)1010十六進制(Hexadecimal)基數:16符號:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F計算規律:逢十六進一或借一當十六十六進制的多項式表示:
N16=dn-1×16n-1+
dn-2×16n-2+
???d1×161+
d0×160+
d-1×16-1+
d-2×16-2+???d-m×16-m
其中n為整數位數;m為小數位數。Di表示第i位的系數,16i稱為該位的權.11例如十六進制數(2C7.1F)16的表示(2C7.1F)16=2×162+12×161+7×160+1×16-1+15×16-212八進制(Octal)基數:8符號:0,1,2,3,4,5,6,7(15.24)8=(1·81+5·80+2·8-1+4·8-2)10=(8+5+0.25+0.0625)10=(13.3125)102、不同數制間的數據轉換1)R進制轉換成十進制的方法按權展開法:先寫成多項式,然后計算十進制結果.N=dn-1dn-2???d1d0d-1d-2???d-m=dn-1×Rn-1+
dn-2×Rn-2+
???d1×R1+d0×R0+
d-1×R-1+
d-2×R-2+???d-m×R-m14
例如:寫出(1101.01)2,(237)8,(10D)16的十進制數(1101.01)2=1×23+1×22+0×21+1×20+0×2-1+1×2-2=8+4+1+0.25=13.25(237)8=2×82+3×81+7×80=128+24+7=159(10D)16=1×162+13×160=256+13=269152)十進制轉換成二進制方法
一般分為兩個步驟:整數部分的轉換除2取余法(基數除法)減權定位法小數部分的轉換乘2取整法(基數乘法)16除基取余法:把給定的除以基數,取余數作為最低位的系數,然后繼續將商部分除以基數,余數作為次低位系數,重復操作直至商為0
例如:用基數除法將(327)10轉換成二進制數21631281124012200210025022121001(327)10=(101000111)22327余數17減權定位法
將十進制數依次從二進制的最高位權值進行比較,若夠減則對應位置1,減去該權值后再往下比較,若不夠減則對應位為0,重復操作直至差數為0。例如:將(327)10轉換成二進制數256<327<512
327-256=711 71<1280 71-64=71 7<320 7<160 7<80 7-4=31 3-2=11 1-1=0119乘基取整法(小數部分的轉換)
把給定的十進制小數乘以2,取其整數作為二進制小數的第一位,然后取小數部分繼續乘以2,將所的整數部分作為第二位小數,重復操作直至得到所需要的二進制小數20例如:將(0.8125)10轉換成二進制小數. 整數部分
2×0.8125=1.6251 2×0.625=1.251 2×0.25=0.50 2×0.5=11 (0.8125)10=(0.1101)221例如:將(0.2)10轉換成二進制小數
整數部分0.2×2=0.4
00.4×2=0.8 00.8×2=1.6 10.6×2=1.2 10.2×2=0.4 00.4×2=0.8 00.8×2=1.6 10.6×2=1.2 1(0.2)10=[0.001100110011….]222二<-->八 二<-->十六00000000010008001100011100190102001021010A0113001131011B1004010041100C1015010151101D1106011061110E1117011171111F3)其它進制之間的直接轉換法23八進制轉換二進制例如:(123.46)8 =(001,010,011.100,110)2 =(1010011.10011)224二進制轉換成十六進制
例:(110110111.01101)2(10110111.01101)2=(1B7.68)16十六進制:1B7.68二進制:0001,1011,0111.0110,1000二進制:1,1011,0111.0110,125十六進制轉換成二進制例如:(7AC.DE)16 =(0111,1010,1100.1101,1110)2 =(11110101100.1101111)2263.數據符號的表示
數據的數值通常以正(+)負(-)號后跟絕對值來表示,稱之為“真值”。在計算機中正負號也需要數字化,一般用0表示正號,1表示負號。正號有時可省略。273.1.2十進制數的編碼與運算
4位二進制數有16種不同的組合,從中選出10種對十進制數位編碼(1)有權碼
表示一位十進制數的二進制碼每一位有確定的權。
BCD(BinaryCodedDecimal)
8421,2421,5211284位有權碼十進制數8421碼2421碼5211碼4311碼0000000000000000010001000100010001200100010001100113001100110101010040100010001111000501011011100001116011011001010101170111110111001100810001110111011109100111111111111129兩個一位BCD碼運算結果修正:
小于等于(9)10,不修正。否則,進行加6修正。① 1+8=9 0001 +1000 1001不需要修正② 4+9=13 0100 +1001 1101 +0110修正
10011 進位30(2)無權碼
表示一個十進制數位的二進制碼的每一位沒有確定的權。
用得較多的是余3碼(Excess-3Code)和格雷碼(GrayCode),格雷碼又稱“循環碼”。
余3碼是在8421碼基礎上加3(0011)而形成的,其運算規則是:
當兩個余3碼相加不產生進位時,應從結果中減去0011;產生進位時,應將進位信號送入高位,本位加0011。
例3.11(28)10+(55)10=(83)1031 0101 1011 (28)10 +)10001 1000 (55)10 1110 0011
低位向高位產生進位,
高位不產生進位。
-)0011+)0011
低位+3,高位-3。 1011 0110 格雷碼的編碼規則:任何兩個相鄰編碼只有一個二進制位不同,而其余三個二進制位相同。其優點是從一個編碼變到下一個相鄰編碼時,只有1位發生變化,用它構成計數器時可得到更好的譯碼波形。格雷碼的編碼方案有多種,表3.3給出兩組常用的編碼值。南華大學計算機學院32表3.24位無權碼十進制數余3碼格雷碼(1)格雷碼(2)0001100000000101000001010020101001101103011000100010401110110101051000111010116100110100011710101000000181011110010019110001001000333.2帶符號的二進制數據在計算機中的表示方法和加減法運算真值與機器數真值:正、負符號加二進制絕對值機器數:在機器中使用的連同數符一起數碼化的數。即在計算機中表示的帶符號的二進制數。機器數有三種表示方式:原碼、補碼和反碼。34
例:設機器字為8位字長,用一位數碼0表示正號,1表示負號。數N1的真值為(+1001110),數N2的真值為(-1001110),則N1,N2對應的機器數為:0100111011001110符號數值部分353.2.1原碼、補碼、反碼及其加減法運算1.原碼表示法原碼的最高位作為符號位,用“0”表示正號,用“l”表示負號,有效值部分用二進制的絕對值表示。簡單地說:原碼=符號+絕對值小數:X1>X≥0
[X]原=
1-X=1+|X|0≥X>-1完成下列數的真值到原碼的轉換X1=+0.1011011X2=-0.1011011
[X1]原=0.1011011[X2]原=1.1011011整數:
X2n-1-1≥X≥0[X]原=2n-1-X=2n-1+|X|0≥X≥-(2n-1-1)完成下列數的真值到原碼的轉換X1=+01011011X2=-01011011[X1]原=01011011[X2]原=11011011南華大學計算機學院38帶符號數的原碼表示39原碼小數的表示范圍[+0]原=0.0000000;[-0]原=1.0000000最大值:1-2-(n-1);最小值:-(1-2-(n-1))表示數的個數:2n-
1原碼小數取值范圍的精確定義:X1-2-(n-1)≥X≥0
[X]原=
(書上P37:1>X≥0)1-X=1+|X|0≥X≥-(1-2-(n-1))40
若二進制原碼小數的位數分別是8、16位,求其該數表示的最大值、最小值及所能表示數的個數?8位:127/128,-127/128,25516位:32767/32768,-32767/32768,6553541原碼整數的表示范圍[+0]原=00000000[-0]原=10000000最大值:2(n-1)-1最小值:-(2(n-1)-1)表示數的個數:2n-
142
若二進制的位數分別是8、16,求其表示的最大值、最小值及表示數的個數8位:127,-127,25516位:32767,-32767,6553543已知原碼求真值:
去掉原碼的符號位得到該數的絕對值,再根據符號位配以相應的符號即得該數的真值。44例:已知原碼求真值[x1]原=10110101 [x2]原=01010110 [x3]原=1.0110101[x1]原=10110101X1=-0110101B=-(25+24+22+1)=-53[x2]原=01010110x2=+1010110B=26+24+22+2=86[x3]原=1.0110101X3=-(0.0110101B)=-(2-2+2-3+2-5+2-7)=-0.414145原碼特點:表示簡單,易于同真值之間進行轉換,實現乘除運算規則簡單。進行加減運算十分麻煩。462.補碼表示法模:就是計量器具的容量,或稱模數。對于n位數來說,其模數M的大小是:n位數全為1后再在最末位加1。如果某數有n位整數(包括1位符號位),則它的模數為2n;如果是n位小數(包括1位符號位),則它的模數總是為2.4位字長的機器表示的二進制整數為:0000~1111共16種狀態,模為16=24在計算機中,若運算結果大于等于模數,則說明該值已超過了機器所能表示的范圍,模數自然丟掉。47補碼定義為機器數的最高位作為符號位,用“0”表示正號,用“l”表示負號。正數的補碼就是正數的本身,負數的補碼是模減去該數的絕對值。小數:X1>X≥0[x]補=2+X=2-|X|0>X≥-1完成下列數的真值到補碼的轉換X1=+0.1011011X2=-0.1011011[X1]補=01011011[X2]補=10100101整數:X2(n-1)-1
≥X≥0
[x]補=2n+X=2n-|X|0>X≥-2(n-1)完成下列數的真值到補碼的轉換X1=+01011011X2=-01011011[X1]補=01011011[X2]補=1010010150補碼的表示范圍:N位純整數:2n-1-1
~
-2n-1N位純小數:1-2-(n-1)~-1
均能表示2n個數51帶符號數的原碼和補碼表示52真值零真值零的補碼是唯一的,即 [+0]補=[-0]補=0…053求補碼的方法正數的補碼等于其原碼,即符號+絕對值。負數的補碼:根據定義:模+X或模-|X|求反加1:先寫出該數的原碼,保持符號位不變,其余各位對應求反,且在末尾加1。先寫出與該負數對應的正數的補碼表示,將其按位求反(包括符號位),且在末尾加1。54例1:X1=+0.1011,X2=-0.1011,字長為8位則[x1]補=0.1011000[x2]補=2-0.1011000=1.0101000或:先寫出該數的原碼:1.1011000再保持符號位不變,其余各位對應求反:1.0100111最后在末尾加1:1.0101000又或:先寫出與該負數對應的正數的補碼表示:0.1011000
將其按位求反(包括符號位):1.0100111
最后在末尾加1:1.010100055例2:X1=+1011,X2=-1011,字長為8位則[x1]補=00001011[x2]補=28-0001011=100000000-00001011=11110101或:先寫出該數的原碼:10001011再保持符號位不變,其余各位對應求反:11110100最后在末尾加1:11110101又或:先寫出與該負數對應的正數的補碼表示:
00001011
將其按位求反(包括符號位):11110100
最后在末尾加1:1111010156原碼與補碼之間的轉換原碼求補碼正數[X]補=[X]原負數符號除外,各位取反,末位加1例:X=-01001001[X]原=11001001,[X]補=10110110+1=10110111[X]補=28+X=100000000-1001001=10110111100000000-10010011011011157已知補碼求真值正數:補碼的數值即其真值。負數:對負數的補碼作“求補運算”可得其數值(絕對值),配以符號即得真值。“求補運算”即“求反加1”。58例:已知補碼求真值[y1]補=10111111[y2]補=1.1101011[y3]補=01101011解:|y1|=01000000+1=01000001y1=-01000001B=-65|y2|=0.0010100+0.0000001=0.0010101y2=-0.0010101B=-0.1641|y3|=01101011y3=+01101011B=10759由[X]補求[-X]補(求機器負數)
運算過程是連同符號一起將各位取反,末位再加1。設字長N=8位例:X=+1001001 [X]補=01001001 [-X]補=1011011160減法運算轉換成加法運算[X]補-[Y]補=[X]補+[-Y]補例如X=(11)10=(1011)2
Y=(5)10=(0101)2已知字長n=5位[X]補-[Y]補=[X]補+[-Y]補=01011+11011=100110=00110=(6)10注:最高1位已經超過字長故應丟掉圖3.1實現加法運算的邏輯示例當執行加法時,應提供的控制信號有:A→ALU,B→ALU(從B寄存器的各觸發器的Q端輸出),ALU
→A
62符號位與有效值一起參加運算 由于原碼、反碼存在(+0)和(-0),減法運算時符號位和有效值采用相同運算規則會出現錯誤。 補碼只有一個零,符號位與有效值可以一起參加運算(如圖3.1)。63補碼的優點⑴使符號位能與有效值部分一起參加運算,從而簡化運算規則.⑵使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計643.反碼表示法正數:反碼與原碼、補碼的表示形式相同.負數:符號位與原碼、補碼的符號位定義相同,只是將原碼的數值位按位變反。小數:X1>X≥0[X]反=(2-2-(n-1))+X0≥X>-1X1=+0.1011011,[X1]反=0.1011011X2=-0.1011011,[X2]反=1.0100100
1.1111111-
0.10110111.0100100
66整數X2n-1>X≥0[X]反=(2n-1)+X0≥X>-2n-1X3=+1011011,[X3]反=01011011X4=-1011011,[X4]反=10100100
11111111-101101110100100 [+0]反=00000000;[-0]反=1111111167帶符號數的原碼、補碼和反碼表示68已知反碼求真值正數:反碼的數值即其真值。負數:對負數的反碼求反可得其數值(絕對值),配以符號即得真值。南華大學計算機學69碼制表示法小結[X]原、[X]反、[X]補用“0”表示正號,用“1”表示負號;如果X為正數,則[X]原=[X]反=[X]補。如果X為0,則[X]補有唯一編碼,[X]原、[X]反有兩種編碼。移碼:與補碼的形式相同,只是符號位相反。4.數據從補碼和反碼表示形式轉換成原碼原碼←→反碼:按位取反;原碼←→補碼:按位取反,末位加1;
求補:在計算機中,用串行電路按位從低位向高位,直到第一個1各位都不變,以后的各位按位取反,最后符號位不變。70715.整數的表示形式設X=Xn…X2X1X0,其中Xn為符號位。72無符號數的表示
在數據處理的過程中,如不需要設置符號位可用全部字長來表示數值大小。如8位無符號數的取值范圍是0~255(28-1)。733.2.2加減法運算的溢出處理1、什么是溢出?當運算結果超出機器數所能表示的范圍時,稱為溢出。顯然,兩個異號數相加或兩個同號數相減,其結果是不會溢出的。僅當兩個同號數相加或者兩個異號數相減時,才有可能發生溢出的情況。例:若機器的字長為5,請分析下列各運算結果是否有溢出:①9+8=?②-8+(-9)=?③(-8)+7=?④15+(-4)=?南華大學計算機學院742、溢出條件及實現邏輯方法一:fA,fB表示兩操作數(A、B)的符號位,fS為結果的符號位。若兩正數相加結果為負或兩負數相加結果為正,都有溢出產生。即:正溢:兩正數相加,結果為負。負溢:兩負數相加,結果為正。75A=10B=710+7:01010
0011110001A=-10B=-7-10+(-7):011111011011001溢出!!正溢負溢76方法二:當任意符號兩數相加時,如果C=Cf,運算結果正確,其中C為數值最高位的進位,Cf為符號位的進位。如果C≠Cf,則為溢出,即:當最高位和次高位不是同時產生進位,則結果溢出77正確0001100010(1)A=3B=23+2:00101(2)A=10B=710+7:010100011110001正溢正確負溢正確正確(3)A=-3B=-2-3+(-2):110111110111110(4)A=-10B=-7-10+(-7):011111011011001(5)A=6B=-46+(-4):000100011011100(6)A=-6B=4-6+4:111101101000100Cf=0C=0Cf=0C=1Cf=1C=1Cf=1C=0Cf=1C=1Cf=0C=011111178方法三:
采用雙符號位fS2,fS1。正數的雙符號位為00,負數的雙符號位為11。符號位參與運算,當結果的兩個符號位fS1、fS2不相同時,為溢出。即:fs2fs1:00—結果為正,無溢出01-正溢10-負溢11-結果為負,無溢出不論溢出與否,結果符號為fs2.79(1)3+2:正確000011000010000101(2)10+7:001010000111010001正溢正確負溢正確正確(3)-3+(-2):110111111101111110(4)-10+(-7):101111110110111001(5)6+(-4):000010
000110111100(6)-6+4:111110111010000100第一符號位Sf2第一符號位Sf2多符號位的補碼采用多符號位的補碼稱為“變形補碼”;
如采用雙符號位:
模:小數m=4、整數m=2n+2一般運算時用雙符號位,存儲時只保留一個符號;正常情況下兩個符號位保持一致,一旦溢出,產生出錯信號,調用中斷處理。813.2.3定點數和浮點數
計算機中小數的小數點并不是用某個數字來表示的,而是用隱含的小數點的位置來表示的。根據小數點的位置是否固定,又可分為定點表示和浮點表示。821.定點數(1)定點小數隱含小數點位置83最小負數最大負數最小正數最大正數表示范圍:二進制原碼1.11111111.00000011.00000000.00000000.00000010.1111111二進制補碼1.00000001.00000011.11111110.00000000.00000010.1111111二進制反碼1.00000001.11111101.11111110.00000000.00000010.11111110二進制原碼:二進制補碼:二進制反碼:84(2)定點整數
將小數點固定在數的最低位之后,這就是定點整數形式。其格式如下:隱含小數點位置85表示范圍:二進制原碼111111111000000110000000000000000000000101111111二進制補碼100000001000000111111111000000000000000101111111二進制反碼1000000011111110111111110000000000000001011111110最小負數最大負數最小正數最大正數二進制原碼:二進制補碼:二進制反碼:862、浮點數浮點的表示形式:即小數點的位置不固定,是浮動的。87
移碼(增碼)表示法移碼也叫增碼,它常以整數形式用在計算機浮點數的階碼(表示指數)中。若純整數X為n位(包括符號位),則其移碼定義為:[X]移=2n-1+[X]補,-2n-1≤X≤2n-1-1
或[X]移=2n-1+X求移碼的方法:①根據定義;②將該數補碼的符號位求反即得該數的移碼。88例1:設字長為8位,若x=-1000
則:[X]補=11111000
[X]移=27+[X]補=10000000+11111000=01111000
或=10000000+(-1000)=01111000
或:將其補碼的符號位求反即得:01111000
89例2:設字長為8位,若x=+1000
則:[X]補=00001000
[X]移=27+[X]補=10000000+00001000=10001000
或=10000000+(+1000)=10001000
或將其補碼的符號位求反即得:10001000
90已知移碼求真值:1)X=[X]移-2n-1X>0或X=-(2n-1
-[X]移)X<02)將該數移碼符號位求反得到該數的補碼,再根據已知補碼求真值的方法求得該數的真值。91例:已知移碼求真值①
[X]移=10001000,則: X=10001000-10000000=+00001000B
或:[X]補=00001000
X=00001000B
②[X]移=01111000,則:X=01111000-10000000=-(10000000-01111000)=-00001000B
或:[X]補=11111000
|X|=00001000
X=-00001000B92帶符號數的四種編碼表示注意:移碼的大小變化與真值一致(由小到大),最小值為全零。93(1)浮點數的表示格式把
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 3393-2024植物新品種特異性、一致性、穩定性測試指南觀賞海棠
- 2025年初升高暑期數學講義專題17 對數函數(分層訓練)(含答案)
- 油田第十二中學2025年中考語文一模試卷
- 2025年九年級語文中考最后一練說明文專題(全國版)(含解析)
- 2025年北京市門頭溝區中考語文二模試卷
- AutoCAD圖形打印58課件
- 考研復習-風景園林基礎考研試題附參考答案詳解【達標題】
- 考研復習-風景園林基礎考研試題(能力提升)附答案詳解
- 風景園林基礎考研資料試題及參考答案詳解(綜合題)
- 2025-2026年高校教師資格證之《高等教育法規》通關題庫附答案詳解(突破訓練)
- 預制梁場驗收及質量管理實施細則
- 愛蓮說對比閱讀(1)
- 最新消防排煙規范-消防排煙計算表
- 大理石打磨工程裝飾協議合同
- 鏈輪齒數尺寸對照表二
- 國有資產管理情況整改報告
- 110kV輸電線路工程冬季施工組織設計
- 模具中英文對照1
- 蘇教版一年級下冊數學易錯題、難題
- EBZ260A掘進機拆除打運施工安全技術措施講述
- (完整word版)毛筆書法—A4紙米字格
評論
0/150
提交評論