


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第3章習(xí)題答案2 <4)髙級語言中的運算和機器語言(即指令)中的運算是什么關(guān)系?假定某一個髙級語官源程序p中有 乘、除運算,但機器m中不提供乘、除運算指令,則程序p能否在機器m上運行?為什么? 參考答案:(略3.考慮以下c語言程序代碼: int fund (unsigned word) i return (int) ( woi d «24) » 24); int func2(imsigned word) return (int) word «24 ) » 24; 假設(shè)在一個32位機器上執(zhí)行這些函數(shù),該機器使用二進制補碼表示帶符號整數(shù).無符號數(shù)采用邏
2、輯移 位,帶符號整數(shù)采用算術(shù)移位請?zhí)顚懴卤聿⒄f明函數(shù)funcl和func2的功能*wfund(w)func2(w)機器數(shù)值機器數(shù)值機器數(shù)值0000007fh1270000 007fh12700000d7fh+1270000 0080h12800000080h128ffff ff80h-128ooooooffh255ooooooffh*255ffffffffh-10000 0100h25600000000h0ooooooooh0函數(shù)funcl的功能是把無符號數(shù)髙24位淸零(左移24位再邏輯右移24位),結(jié)果一定是正的有符號數(shù): 而函數(shù)func2的功能是把無符號數(shù)的髙24位都變成和第25位一樣,因
3、為左移24位后進行算術(shù)右移,高24 位補符號位(即第25位*4.填寫下表,注意對比無符號數(shù)和帶符號整數(shù)的乘法結(jié)果,以及截斷操作前、后的結(jié)果.模式xyxxy (截斷前xxy (截斷后)機器數(shù)值機器數(shù)值機器數(shù)值機器數(shù)值無符號數(shù)11060102001100121004二進制補碼u0-20102minn-4100-4無符號數(shù)0011u100011171117二進制補碼001+1111-1mill-1111-1無符號數(shù)1117m7noooi00111蝌卜碼u1一 1u1-1000001*100115.以下是兩段c語言代碼,函數(shù)aritho是直接用c語言寫的,而optarith()*w arfth()函數(shù)
4、以某個磽定的 m和n編譯生成的機器代碼反編譯生成的.根據(jù)optaritho,可以推斷函數(shù)arith()中m和n的值各是 多少? 61 define m define n int arfth (intx, inty)hit result = 0 ; result = xwm + y/n; return result; l int optarith (int x, int y) int t= x;x« = 4;x- = t; tf(y<o)y+=3; y»2; return x+y;參考答案:可以看出x*m和“mtt = x;x« = 4; x-=t;”三句對應(yīng)
5、,這些語句實現(xiàn)了 x乘15的功能(左移4位 相當(dāng)于乘以16,然后再減1,因此,m等于15:y/n與-if(y<0)y+=3; y»2;m兩句對應(yīng),功能主要由第二句“y右移2位”實現(xiàn):它實現(xiàn)了 y除 以4的功能.因此n是4.而第一句"if(y<0)y+=3; ”主要用于對y=-l時進行調(diào)整.若不整,則 而-1/4=0,兩者不等;調(diào)整后-1+3=2, 2»2=0.兩者相等.思考:能否把 tf(y<0) y+=3;改成 if(y<0) y+=2; ? 不能!因為y=-4時不正確.6.設(shè)b-b.分別是四位加法器的兩組輸入,ct為低位來的進位.當(dāng)加法
6、器分別采用串行進位和先 行進位時,寫出四個進位cccj邏輯表達式.參考答案:串行進位:cxici+yico + xiyi c2 = x2ci+y2ci + x2y2 cj = xjcrfyjc: + x3 y3 c4=x4c3 十 y4c3 + x4y4 并行進位:c2= x2y2+ (x2+y2) x1y1+ (xi+yz) (xi+yi)cocj=x3y3+ (x3+yj)x2y2+ (xj+yj) (x2 + y2)xiyi+ (x3+y3) (x2+y2)(xi + yi)ct c<=x4y4+(x4+y4)xjy3+(x4+y4)(xj+y3)x:y:+(x4+y4)(x3+y
7、j)(x2+y 2)xiy !+(x4+y4)(xj+y3) (xyi+yoc.7.用sn74181和sn74182器件s計一個16位先行進位補碼加減運算器,畫出運算器的邏輯框圖.并給出 零標(biāo)志、進位標(biāo)志、溢出標(biāo)志、符號標(biāo)志的生成電略。參考答案(圖略):邏輯框圖參見教材中的圖3.15和圖3.16,將兩個圖結(jié)合起來即可,也即只要將圖3.15中的入埔的每 一位玖取反,得到瓦 和原碼玖一起送到一個二路選擇器,由進位c作為選擇控_倍號.當(dāng)(?為1時 做臧法,此時,選擇將瓦作為sn74181的b輸入埔;否則,當(dāng)cbsl時,做加法.零標(biāo)志zf、進位標(biāo)志cf、溢出標(biāo)志of、符號標(biāo)志sf的邏輯電路根據(jù)以下邏輯
8、表達式畫出即可. zf=fir*-fm+fu+fi2+fn+fw+ft+fi+f7+f4+f5+f4+fj+f2+fi+fecf=cuof= ci <aisbifis + aiifi?) +c(abbis + aisbisfu:)sf=fis8.用sn74181和sn74182器件設(shè)計一個32位的alu*要求采用兩級先行進位結(jié)構(gòu).(1)寫出所需的sn74181和sn74182芯片數(shù)(2)畫出幻位alu的邏輯結(jié)構(gòu)圖參考答案(圖略):將如圖3.15所示的兩個16位alu級聯(lián)起來即可,級聯(lián)時,低16位alu的髙位進位作為髙16 位alu的低位進位c_,因此,只要用8片sn74181和2片sn7
9、4182*9.已知x=10, y = -6,采用6位機器數(shù)表示.請按如下要求計算,并把結(jié)果還原成真值.(1)求時】. x-y».(2)用原碼一位乘法計算xxy.(3)用mba (基4布斯乘法計算x ym.(4)用不恢復(fù)余數(shù)法計算的商和余數(shù)。(5)用不恢復(fù)余數(shù)法計算【x/yk的商和余數(shù)參考答案:10】* = 001010-6» = 1110106» = 00011010】躍=001010= 100110(1) 1(h(- 6)»= 10+-6 001010+111010 = 000100 (+4)10h+-(-6)h = 001010+000110 = 0
10、10000 (+16)c0p0000y0110說明p.= 0+ 0000y4=o» +o00000c,p和y同時右移一位00000011得pi+ 1010yj=i> +x01010c,p和y同時右移一位001010001得pz+ 1010y2=l,+x0011110111000010 0)0c, p和y同時右移一位得pj+ 0000yi=0- +00 0c,p和y同時右移一位 得p4(2) 先采用無符號數(shù)乘法計算001010x 000110的乘積,原碼一位乘法過程(前面兩個0省略如下:若兩個6位數(shù)相乘的話,則右移兩次,得000000111100符號位為:0 1 = 1,因此,p
11、c>y« = 1000 0011 1100 apxxy = -111100b = -60(3) -101=110110,布斯乘法過程如下:pyy.i說明000000kiioio0設(shè) y-i=o. pom=oyb y i = 00t p、y宣接右參一位0000000111010得+110110omm* mm.memmeoe* mm*yiy_=10,+-x»110110p、y同時右移一位111011oo| 1101得plh+001010y:yi =oi> + m#000101p、y同時右移一位0000101001110 mmb mbbbm得(pjh+11011011
12、 , 1 _ oofill0yjy:=io +【一x樸111000p、y同時右移一位1111000100111得rm*+0000000100 1 11y4yj=ll,40111100p、y同時右移一位1111100010011得psb - 1 . - - +000000bdiobhiysy4=ll,-h)111110p、y同時右移一位linnoooiool1得pd*因此 pcxy#=llll 1100 0100,即 xx y = -ll u00b=-60(4)因為除法計算是 2n 位數(shù)除 n 位數(shù),所以6.=0110, 10.=0000 1010, -»=1010, 商的符號位:0&
13、#174;l = l,運算過程(前面兩個0省略)如下:余數(shù)寄存器r余數(shù)/商寄存器q說 明00001010 * «幵始re=x+ 1010ri=x-y1010wwa* woe ww _ml0! o(1 < ri< 0>則<|4=0,沒有溢出0101 101032ri (r和q同時左移,空出一位商+ 0110r2= 2ri+y1 oil1oiopor2<。,則 j=0olio10do n2r:和q同時左移,空出一位商)+ 0110r3= 2r2+y1 10010 )00rj<0,則 qj=o1001奪曹«參01)00口2r3 (r和q同時左移
14、,空出一位商)+ 0110rj= 2r2+y1111oj)ooor4<0, mq! = o1110ooooq2r/ <r和q同時左移,空出一位商)+ 0110r5=2r4+y0100 poooi rs>0,m qo=l商的數(shù)值部分為:00001.所以,xk-ooool (最髙位為符號位),余數(shù)為0100_(5)將10和4分別表示成補碼形式為:10 * = 0 1010 , |-6 »=1 1010,計算過程如下: 先對被除數(shù)進行符號擴展,【10】 *=00000 01010, 6 #=00110余數(shù)寄存器r余數(shù)帝寄存器q說 明0000001010幵始r«-
15、xjiyoibri=lx +yj1101001010ri與y同號,則屯=1 # 10100+00110 11010io loff1010110101 +0011011011>tbm 鋒10110 +001101110011001 +00110oiai i10111s;00100 +0000000100所以,x/yl #=lllllr 余數(shù)為 00100,2r| (r和q同時左移,空出一位上商1) r2= 2r|+(-yrj 與y同號,2r: (r和q同時左移*空出一位上商1)rj=2r2+.yrj與y同號,則<b=l2rj (r和q同好;£移,空出一位上商1) rzrj+
16、hy與m同號,則2r4 (r和q同時左移,空出一位上商0) rs=恥+【-¥】rf與y同號,則qi=l,7r#qw*¥:空出一位上商1) r«=2r«+-yr*與y異號,則qo=o> q左移,空出一位上商1 商為負(fù)數(shù),末位加h余數(shù)不需要修正即:x/y=-0001b = -l,余數(shù)為 0100b = 4將各數(shù)代入公式“除數(shù)商4數(shù)。被除數(shù)”進行驗證,得:(-6)x(_l)44=10.10. 若一次加法需要lns,一次移位需要0.5ns.請分別計算用一位乘法、兩位乘法、基于cra的陣列乘法、 基于csa的陣列乘法四種方式計算兩個8位無符號二進制數(shù)乘積時所
17、的時間.參考答案,一位乘法:8次右移,8次加法.共計12ns:二位乘法,4次右移,4次加法.共計6ns:基于cra的陣列乘法:每一級部分積不僅依賴于上一級部分積,還依賴于上一級1ft終的進位,而每一 級進位又是串行進行的,所以最長的路徑總共經(jīng)過了 8+2x(8-l)=22次全加器,共計約22ns:基于csa的陣列乘法t本級進位和本級和同時傳送到下一級,同級部分積之間不相互依賴,只進行o (n次加法運算,因此,共計約8ns.11. 在ieee 7m浮點數(shù)運算中*當(dāng)結(jié)果的尾數(shù)出現(xiàn)什么形式時需要進行左規(guī),什么形式時需要進行右規(guī)? 如何進行左規(guī),如何進行右規(guī)?參考答案:(1)對于結(jié)果為土 ix .xx
18、.x的情況.需要進行右規(guī).右規(guī)時,尾數(shù)右移一位.階碼加1.右規(guī)操作可 以表示為:nu4-mc21, ek<-ek+1.右規(guī)時注意以下兩點:a)尾數(shù)右移時,最髙位“1”被移到小數(shù)點前一位作為隱藏位,最后一位移出時,要考慮舍入b)階碼加1時,直接在末位加u(2)對于結(jié)果為土0.00.01x.x的情況,需要進行左規(guī)。左規(guī)時,數(shù)值位逐次左移,階碼逐次減1, 直到將第一位“1”移到小數(shù)點左邊.假定k為結(jié)果中“土”和左邊第一個1之間連續(xù)0的個數(shù),則左規(guī)操 作可以表示為:mk<-mfcx2k, ek<-ek-k.左規(guī)時注意以下兩點:a)尾敗左移時數(shù)值部分羨左k個0被移出,因此,相對來說,小
19、數(shù)點右移了 k位,因為進行尾數(shù)相加時, 馱認(rèn)小數(shù)點位置在第一個數(shù)值位(即:隱籯位之后,所以小數(shù)點右移k位后被移到了第一位1后面, 這個1就是隱藏位*b)執(zhí)行eu-£vk時,每次都在末位減1, 一共減k次.12. 在ieee 754浮點數(shù)運算中,如何判斷浮點運算的結(jié)果是否溢出?參考答案:浮點運算結(jié)果是否溢出,并不以尾數(shù)溢出來判斷,而主要看階碼是否溢出.尾數(shù)溢出時,可通過右規(guī)操 作進行糾正階碼上溢時,說明結(jié)果的數(shù)值太大,無法褒示;階碼下溢時,說明結(jié)果數(shù)值太小,可以把結(jié)果近似為oe在進行對階、規(guī)格化、舍入和浮點數(shù)的乘除運算等過程中,都需要對階碼進行加、減運算,可能會發(fā)生階碼上溢或階碼下溢,
20、因此必須對階碼進行溢出判斷(有關(guān)對階碼進行溢出判斷的方法可參見教材中相關(guān)聿節(jié)* >13. 假設(shè)浮點數(shù)格式為:階碼是4位移碼,偏置常數(shù)為8,尾數(shù)是6位補碼(采用雙符號位),用浮點運算規(guī) 則分別計算在不采用任何附加位和采用2位附加位(保護位、舍入位兩種情況下的值.(假定對階和 右規(guī)時采用就近舍入到偶數(shù)方式)(1) (15/16) x27 +(2/16)(2) (15/16)(3) (15/16) x2f +(2/16) x27(4) (15/16) <2*-(26) x27參考答案(定采用隱藏位):x= q5/16) x27 = 0111100b x27= (l.llloooh x 2
21、yl= (2/16) x25 = 0.001000b *?= (1.000000): < 22y2= (-2/16) x25 = -o ooiooob x2s= (-1.000000): < tk= (15/16) x25 = 0.111100b x2?= (l.llloooh x 24jl= (2/16) x27 = 0.001000b x27= (1.000000): x 24j2= (-2/16) x27 = -0.001000b <2?= (-1.000000): x 24根據(jù)題目所給的各種位數(shù).可以得到在機器中表示為:x浮=00 1110 (1)111000y11
22、浮=00 1010 (1)000000 y2k = ll 1010 (1)000000kh=oo 1100 (1)111000【ji,=00 1100 (1)000000 j2 = 111100 (1)000000所以,ex=1110f00(1).111000,eyl = 1010, my =00(1).000000, e0 = 1010, my= 11(1).000000ek= 1100, mk = 00 (1). 111000 , eji = 1100, mji= 00(1).000000, e刃=1100,11(1).000000尾數(shù)m中小數(shù)點前面有三位,前兩位為數(shù)符,衷示雙符號,第三位
23、加了括號,是除藏位“1 沒有附加位時的計算:(1) x+y1【 ej* = e + -e yis» (mod 2 = 1110 + 0110 = 0100 e = 4,根據(jù)對階規(guī)則可知需要對yl進行對階,結(jié)果為:eyi=ex=1110, 21=000.000100 尾數(shù)相加:nu = m, 4- my!= 001. 111000 000.000100 = 001.111100,兩位符號相等數(shù)值部分最髙位 為1,不需要進行規(guī)格化,所以最后結(jié)果為:e=1110, m=00(l).111100,即(31/32) 67 |ae# = ej移 + -eyzld* (mod2、= 1110 +
24、0110-0100; e = 4r根據(jù)對階規(guī)則可知需要對y2進行對階,結(jié)果為:eelllo, mf 111.111100尾數(shù)相加:mx + my2= 001.1110oh 11l1111jsu1110100,兩位符號相等,數(shù)值部分最高為1,不霈要進行規(guī)格化,所以最后結(jié)果為:e=1110, moxd.lloloo,即(29zj2) x27 k+j1ia e* = e kln + -e jdd* (mod 2") = 1100 + 0100 = 0000;ae = o,根據(jù)對階規(guī)則可知不需要進行對階尾數(shù)相加:mk + mji= 001.111000 001 000000= 010.111
25、000,兩位符號不等,說明尾數(shù)溢出, 需要進行右規(guī),最后結(jié)果為:e=1101, m=00(l) 011100,即(23/32) *24 k+j2| a e* = e khi + -e jjd* (mod 2") = 1100 + 0100 = 0000;ae = o.根據(jù)對階規(guī)則可知不需要進行對階尾數(shù)相加:mb= mr + mj:= 00 1.111000+ 111.000000 = 000.111000,兩位符號相等.數(shù)值部分最髙位 為0,需要進行左規(guī),所以最后結(jié)果為:e=1011, m=<xx1).110000,即(7/8) >24如果有兩位附加位精度上會有提髙.在對
26、階的時候要注意小數(shù)點后就不是6位.而是8位,最后兩 位為保護位和舍入位.但是由于本題6位尾數(shù)己經(jīng)足夠.再加2位附加位,其結(jié)果是一樣的*14.采用ieee 754單精度浮點數(shù)格式計算下列表達式的值*(1> 0.7sf(-65.25)(2) 0.75-(-65.25)參考答案:x = 0.75 = 0.110.0b = (1.10.0)2 * 21y = -65 25 = -1000001.01000.0b = (-1 00000101 .0) 2 x 2 用ieee 754標(biāo)準(zhǔn)單精度格式表示為:x|« = 0 01111110 10.0y】* = 1 10000101000001
27、010.0所以,ex= 01111110, mx=0(l). 1.0 i ey= 10000101, m,= 1(1).000001010.0尾數(shù)從和中小數(shù)點前面有兩位.第一位為數(shù)符,第二位加了括號.是隱藏位“1”. 以下是計算機中進行浮點數(shù)加減運算的過程(假定保留2位附加位:保護位和舍入位<1) 0.75+(-65.25) 對階:ae* = ej*+-e7b】科(mod 2") = 01111110 + 0111 1011 = 1111 1001ae = -7,根據(jù)對階規(guī)則可知需要對x進行對階,結(jié)果為:em=ey= 10000101,mx= 00.000000110.000
28、x的尾數(shù)右移7位,符號不變,數(shù)值離位補0,隱藏位右移到小數(shù)點后面,最后移出的2位保留 尾數(shù)相加:nu = mk+ mr= 00. 000000110 ooth-11.000001010 .000 (注意小數(shù)點在隱藏位后) 根據(jù)原碼加喊法運算規(guī)則,得:00 000000110 .0004-11 00(x)01010. .000= n.000000100000上式尾數(shù)中最左邊第一位是符號位,其余都是數(shù)值部分,尾數(shù)后面兩位是附加位(加粗, 規(guī)格化:根據(jù)所得尾數(shù)的形式,數(shù)值部分最髙位為1,所以不需要進行規(guī)格化, 舍入:把結(jié)果的尾數(shù)地中最后兩位附加位舍入掉,從本例來看,不管采用什么舍入法,結(jié)果都 樣,都
29、是把最后兩個0去掉,得:mfc= 11.000000100.0 溢出判斷,在上述階碼計算和調(diào)整過程中,沒有發(fā)生“階碼上溢”和“階碼下溢”的問題.因此, 階碼 efc = 10000101 最后結(jié)果為 ew = 10000101, mb=l(l).00000010.0. bp: -64.5.<2) 0.75-(-65.25) 對階:【ae* = (e j»+【-e,bb» (mod 2") = 0111 1110 + 0111 1011 = 1111 1001ae = -7,根據(jù)對階規(guī)則可知需要對x進行對階,結(jié)果為:e,= ey= 10000110,00 000000110.000x的尾數(shù)右移一位,符號不變,數(shù)值髙位補0,晚藏位右移到小數(shù)點后面,最后移出的位保留尾數(shù)相加:m».= mx-my=00,110. 000 - 11. 000001010 .000(注意小數(shù)點在除藏位后)根據(jù)朦碼加喊法運算規(guī)則,得:00.000000110 .000 -11.000001010.000=01 00001000.000 上式尾數(shù)中最左邊第一位是符號位,其余都是數(shù)值部分,尾數(shù)后面兩位是附加位(加粗, 規(guī)格化:根據(jù)所得尾數(shù)的形式,數(shù)值部分最高位為1,不需要進行規(guī)格化. 舍入:把結(jié)果的尾數(shù)中最后兩位附加位
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鋁顏料行業(yè)運行現(xiàn)狀及發(fā)展趨勢預(yù)測報告
- 2025-2030年中國鋁冶煉市場競爭格局及前景趨勢預(yù)測報告
- 2025-2030年中國鎢行業(yè)未來投資預(yù)測發(fā)展戰(zhàn)略規(guī)劃分析報告
- 2025四川省建筑安全員《C證》考試題庫
- 2025-2030年中國過氧化鋅市場運營動態(tài)及發(fā)展前景分析報告
- 2025-2030年中國車蠟行業(yè)市場運行態(tài)勢及發(fā)展盈利分析報告
- 2025-2030年中國調(diào)味香料市場發(fā)展前景及投資戰(zhàn)略研究報告
- 2025-2030年中國船舶制造行業(yè)發(fā)展?fàn)顩r及營銷戰(zhàn)略研究報告
- 2025-2030年中國紙基覆銅板市場十三五規(guī)劃及投資風(fēng)險評估報告
- 高二數(shù)學(xué)(含創(chuàng)意快閃特效)-【開學(xué)第一課】2023年高中秋季開學(xué)指南之愛上數(shù)學(xué)課
- 《學(xué)前兒童社會教育》學(xué)前兒童社會教育概述-pp課件
- 全國醫(yī)學(xué)英語統(tǒng)考醫(yī)學(xué)英語詞匯表
- 【品牌建設(shè)研究國內(nèi)外文獻綜述5000字】
- 國家電網(wǎng)公司電力安全工作規(guī)程(電力通信部分)(試行)
- 第八版-精神分裂癥及其他精神病性障礙(中文)
- 小學(xué)一年級新生報名登記表
- 生態(tài)毒理學(xué)第三章毒物的分子效應(yīng)與毒理學(xué)機制
- 智能財務(wù)共享在京東的應(yīng)用研究
- 衛(wèi)生和微生物基礎(chǔ)知識培訓(xùn)-
- 2023年鎮(zhèn)江市高等??茖W(xué)校單招綜合素質(zhì)題庫及答案解析
評論
0/150
提交評論