計算機基礎(chǔ)知識100題及答案 在定點機中執(zhí)行算術(shù)運算時會產(chǎn)生溢出,原因?
在定點機中執(zhí)行算術(shù)運算時會產(chǎn)生溢出,原因?定點數(shù)運算方法及溢出判別方法?定點數(shù)加減法的溢出判斷可以通過單符號位溢出檢測法和雙符號進位溢出檢測法來確定。目前,補碼廣泛應(yīng)用于定點的加減運算。1. 加減運算
在定點機中執(zhí)行算術(shù)運算時會產(chǎn)生溢出,原因?
定點數(shù)運算方法及溢出判別方法?
定點數(shù)加減法的溢出判斷可以通過單符號位溢出檢測法和雙符號進位溢出檢測法來確定。目前,補碼廣泛應(yīng)用于定點的加減運算。
1. 加減運算法:根據(jù)補碼的設(shè)計規(guī)則,任意一個絕對值相同的負數(shù)和正數(shù),負數(shù)是正數(shù)加1的反碼,所以如果把絕對值相同的負數(shù)和正數(shù)相加,正好好的結(jié)果都是0(最高的位被帶入,并被丟棄)。通過與下補表的比較,我們可以發(fā)現(xiàn),基于這種設(shè)計,當(dāng)兩個數(shù)相加時,符號位也可以直接參與運算,運算結(jié)果也包含符號位。
2. 溢出判斷:(1)溢出只有正數(shù)和正數(shù)兩種,結(jié)果為負數(shù),發(fā)生溢出。負數(shù)和負數(shù)相加,結(jié)果為正數(shù),并發(fā)生溢出。為什么正數(shù)和負數(shù)的相加不溢出?因為正數(shù)和負數(shù)的最大值的絕對值是相同的,所以正數(shù)和負數(shù)相加的結(jié)果必須在絕對值之內(nèi)。減法只是取加數(shù)的補碼并相加,所以知道加法的溢出就足夠了。(2) 進位溢出法(單符號位)可以從補碼表中看出:無溢出:將絕對值較大的負數(shù)和絕對值較小的正數(shù)相加,最高有效位(即最高值位)不會溢出,因此符號位沒有進位。當(dāng)絕對值較小的負數(shù)與絕對值較大的正數(shù)相加時,最高有效位溢出,符號位從1變?yōu)?0(0)進位。溢出情況:上面已經(jīng)知道:正數(shù)和正數(shù)相加,結(jié)果是負數(shù),溢出。在這種情況下,最高有效位帶進位,而符號位從0變?yōu)?,不帶進位。負數(shù)和負數(shù)相加,結(jié)果為正數(shù),并發(fā)生溢出。在這種情況下,最高有效位不進位,符號位從1變?yōu)?0(0)。因此,當(dāng)最高有效位的進位與符號位的進位不同時,就會發(fā)生溢出。(3) 雙符號位進位溢出檢測方法使用雙符號位(00,11)進行加法,我們已經(jīng)知道:所以當(dāng)最高有效位和符號位的進位不同時,就表示發(fā)生了溢出。如果符號位被攜帶,如果它沒有被攜帶,最高有效位將是11=10(110)。這是負溢出。如果符號位未進位,則最高有效位的進位變?yōu)?0 1=01。這是一個正溢出。
在定點補碼加法運算中,產(chǎn)生溢出的條件是什么寫出兩種?
判斷補碼加法運算溢出的方法有三種:【方法一】XF和YF分別是兩個數(shù)字符號位,ZF是運算結(jié)果的符號位。當(dāng)XF=YF=0(兩個數(shù)字均為正)和ZF=1(結(jié)果為負)時,出現(xiàn)負溢出;當(dāng)XF=YF=1(兩個數(shù)字均為負)和ZF=0(結(jié)果為正)時,出現(xiàn)正溢出。如果CS?CP=0,則不存在溢出;如果CS?CP=1,則存在溢出。[方法3]用變形補碼進行雙符號位運算(正號為00,負號為11)。如果運算結(jié)果的符號位為“01”,則為正溢出;如果運算結(jié)果的雙符號位為10,則為負溢出;如果運算結(jié)果的雙符號位為00或11,則不存在溢出。
定點加減法運算中的溢出是什么意思?
判斷補碼加法運算溢出的方法有三種:【方法一】XF和YF分別是兩個數(shù)字符號位,ZF是運算結(jié)果的符號位。當(dāng)XF=YF=0(兩個數(shù)字均為正)和ZF=1(結(jié)果為負)時,出現(xiàn)負溢出;當(dāng)XF=YF=1(兩個數(shù)字均為負)和ZF=0(結(jié)果為正)時,出現(xiàn)正溢出。如果CS⊕CP=0,則不存在溢出;如果CS⊕CP=1,則存在溢出。[方法3]用變形補碼進行雙符號位運算(正號為00,負號為11)。如果運算結(jié)果的符號位為“01”,則為正溢出;如果運算結(jié)果的雙符號位為10,則為負溢出;如果運算結(jié)果的雙符號位為00或11,則不存在溢出。