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