資源描述:
《用變形補(bǔ)碼計(jì)算xy》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、變形補(bǔ)碼計(jì)算X+Y試題集第4章機(jī)器數(shù)的運(yùn)算方法及運(yùn)算器目錄4.1機(jī)器數(shù)的加減運(yùn)算及其實(shí)現(xiàn)4.2定點(diǎn)乘法及其實(shí)現(xiàn)4.4浮點(diǎn)數(shù)的算術(shù)運(yùn)算4.5運(yùn)算器的組成和結(jié)構(gòu)4.1機(jī)器數(shù)的加減運(yùn)算及其實(shí)現(xiàn)4.1.1原碼加法4.1.2補(bǔ)碼加法4.1.3減法運(yùn)算4.1.4補(bǔ)碼加減運(yùn)算線路的實(shí)現(xiàn)4.1.1原碼加法例4.1設(shè)X=+10001,Y=+01011,求Z=X+Y解:即,Z=+11100。1.符號(hào)相同的兩個(gè)原碼相加:符號(hào)相同的兩個(gè)原碼相加,只要兩個(gè)數(shù)的數(shù)值相加即可,其符號(hào)不變。解:即,Z=-11100。例4.2設(shè)X=-10001,Y=-01
2、011,求Z=X+Y【例4.3】設(shè)X=+10101,Y=-01010,求Z=X+Y解:先比較X與Y的絕對(duì)值,本題∣X∣>
3、Y
4、,所以做減法
5、X∣-
6、Y
7、,結(jié)果是Z=+010114.1.1原碼加法2.符號(hào)相異的兩個(gè)原碼相加:先比較兩數(shù)的絕對(duì)值大小,用絕對(duì)值大的數(shù)減去絕對(duì)值小的數(shù),結(jié)果的符號(hào)是絕對(duì)值大的數(shù)的符號(hào)。例4.2設(shè)X=+01010,Y=-10111,求Z=X+Y解:先比較X與Y的絕對(duì)值,本題∣Y∣>
8、X
9、,所以做減法
10、Y∣-
11、X
12、,結(jié)果是Z=-01101用原碼進(jìn)行符號(hào)不同的兩個(gè)數(shù)相加時(shí)有以下三步運(yùn)算:①比較兩個(gè)數(shù)的絕對(duì)
13、值的大?。虎诮^對(duì)值大的數(shù)的絕對(duì)值減去絕對(duì)值小的數(shù)的絕對(duì)值;③結(jié)果賦以絕對(duì)值大的那個(gè)數(shù)的符號(hào)。4.1.1原碼加法4.1.2補(bǔ)碼加法1.定點(diǎn)補(bǔ)碼運(yùn)算性質(zhì)性質(zhì)1兩數(shù)之和的補(bǔ)碼等于兩數(shù)補(bǔ)碼之和。[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)補(bǔ)碼運(yùn)算特點(diǎn):①補(bǔ)碼運(yùn)算時(shí),不用判斷符號(hào)位,符號(hào)位與數(shù)值一塊參與運(yùn)算;②兩數(shù)相加之后,進(jìn)位的最高位超出字長(zhǎng)部分自動(dòng)丟失。例4.5設(shè)X=+11010,Y=-10101,用補(bǔ)碼的加法求Z=X+Y解:加數(shù)和被加數(shù)的數(shù)值位都是5位,在數(shù)值位之前加1位符號(hào)位。這樣,[X]補(bǔ)=011010,[Y]補(bǔ)=101011[X+Y
14、]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)=011010+101011=000101所以,X+Y=+00101。注意:在運(yùn)算中,數(shù)值位和符號(hào)位有進(jìn)位,本例采用單符號(hào)位,以2為模,進(jìn)位的1就丟掉了。例4.6設(shè)X=+10101,Y=-11010,用補(bǔ)碼加法求Z=X+Y解:[X]補(bǔ)=010101,[Y]補(bǔ)=100110[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)=010101+100110=111011所以,X+Y=-00101。性質(zhì)2一個(gè)負(fù)數(shù)的補(bǔ)碼的補(bǔ)碼就是這個(gè)負(fù)數(shù)的原碼。[[X]補(bǔ)]補(bǔ)=[X]原例4.7設(shè)有兩個(gè)定點(diǎn)小數(shù)X=-0.10011,Y=-0.11
15、001,求這兩個(gè)負(fù)數(shù)補(bǔ)碼的補(bǔ)碼。解:[X]原=1.10011[Y]原=1.11001[X]補(bǔ)=1.01101[Y]補(bǔ)=1.00111[[X]補(bǔ)]補(bǔ)=1.10011=[X]原[[Y]補(bǔ)]補(bǔ)=1.11001=[Y]原補(bǔ)碼這一性質(zhì),計(jì)算機(jī)中計(jì)算結(jié)果的補(bǔ)碼均可化成該數(shù)的原碼。例4.8設(shè)有兩個(gè)定點(diǎn)小數(shù)X=-0.1101,Y=0.0111,(-116、]補(bǔ)=1.0110所以,X+Y=-0.0110用真值進(jìn)行運(yùn)算:X+Y=-0.1101+0.0111=-0.0110結(jié)果相同。用補(bǔ)碼做加法是數(shù)值位連同符號(hào)位一起參加運(yùn)算的。但是在有溢出的情況下,用一般的補(bǔ)碼加法就得不到正確的結(jié)果,再看下面的例子。例4.9設(shè)有兩個(gè)定點(diǎn)小數(shù)X=+0.10111,Y=+0.10001,用補(bǔ)碼的加法求Z=X+Y解:[X]補(bǔ)=0.10111,[Y]補(bǔ)=0.10001[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)=0.10111+0.10001=1.01000Z=X+Y=-0.11000兩個(gè)大于0.5的正數(shù)相加,結(jié)果
17、就為負(fù)值,結(jié)果顯然是錯(cuò)誤的。例4.10設(shè)X=-0.10111,Y=-0.10001,用補(bǔ)碼的加法求Z=X+Y解:[X]補(bǔ)=1.01001,[Y]補(bǔ)=1.01111[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)=1.01001+1.01111=0.11000Z=X+Y=+0.11000兩個(gè)絕對(duì)值大于0.5的負(fù)數(shù)相加,結(jié)果為正值,這也是錯(cuò)誤的。它們的和超出了機(jī)器數(shù)所能表示的最大范圍,即產(chǎn)生了溢出,在有溢出的情況下,用一般補(bǔ)碼加法就無(wú)法得到正確結(jié)果。例4.11設(shè)有兩個(gè)定點(diǎn)小數(shù)X=+0.10111,Y=-0.10001,用補(bǔ)碼的加法求Z=X+Y
18、解:[X]補(bǔ)=0.10111,[Y]補(bǔ)=1.01111[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)=0.10111+1.01111=0.00110所以,Z=+0.00110,沒(méi)有發(fā)生溢出,結(jié)果是正確的。例4.12設(shè)有兩個(gè)定點(diǎn)小數(shù)X=-0.10111,Y=+0.10001,用補(bǔ)碼的加法求Z=X+Y解:[X]補(bǔ)=1.0