當(dāng)運(yùn)算結(jié)果超出機(jī)器數(shù)所能表示的范圍時(shí)矛洞,稱為溢出。
顯然烫映,兩個(gè)異號數(shù)相加或兩個(gè)同號數(shù)相減沼本,結(jié)果不會溢出。僅當(dāng)兩個(gè)同號數(shù)相加或兩個(gè)異號數(shù)相減時(shí)锭沟,才有可能發(fā)生溢出抽兆。
一旦溢出,運(yùn)算結(jié)果就不正確了族淮,因此必須將溢出的情況檢查出來辫红。
運(yùn)算
在上例中凭涂,1256得出正確結(jié)果,34為溢出贴妻。
判別溢出的方法:
(1)符號相同的兩數(shù)相加切油,如果結(jié)果的符號與加數(shù)(被加數(shù))不相同,則為溢出名惩。
(2)當(dāng)任意符號兩數(shù)相加時(shí)澎胡,如果數(shù)值最高位產(chǎn)生的進(jìn)位 不等于 符號位的進(jìn)位,則為溢出娩鹉。
(3)采用雙符號位攻谁。正數(shù)的雙符號位為00,負(fù)11弯予。符號位參與運(yùn)算戚宦,當(dāng)結(jié)果的兩個(gè)符號位不相同時(shí)鳖宾,為溢出蒙畴。
一般運(yùn)算時(shí)用雙符號位,存儲時(shí)僅保留一個(gè)符號位腰埂。因?yàn)檎G闆r下祠挫,兩個(gè)符號位保持一致;
而發(fā)生溢出情況時(shí)悼沿,一般要產(chǎn)生出錯(cuò)信號等舔,由CPU執(zhí)行糾錯(cuò)程序進(jìn)行處理,情況嚴(yán)重時(shí)將停機(jī)糟趾。