有進位一定溢出嗎?有溢出一定進位嗎?來看這里


有進位不一定溢出
有溢出不一定進位
因為,溢出是結果超過了機器能表達的范圍,有可能沒有進位
而最高位進位時分情況,當最高位(符號位)進位時伴隨次高位(真值最高位)的進位,就不會產生溢出
比如

bit 6->bit 7有進位,bit 7->bit 8有進位
bit8,7,6,5,4,3,2,1,0
1 1 1 1 1 1 1 1(-1)
+0 0 0 0 0 0 0 1(+ 1)

0 0 0 0 0 0 0 0( 0 ) OF=0

bit 6->bit 7有進位,bit 7->bit 8無進位
bit8,7,6,5,4,3,2,1,0
0 1 1 1 1 1 1 1(+127)
+0 0 0 0 0 0 0 1(+ 1)

1 1 1 1 1 1 1 1( -1 ) OF=1(因為:正數+正數=負數)

bit 6->bit 7無進位,bit 7->bit 8有進位
bit8,7,6,5,4,3,2,1,0
1 1 1 1 1 1 1 0(-2)
+1 0 0 0 0 0 0 1(- 1)

0 1 1 1 1 1 1 1(+127) OF=1(因為:負數+負數=正數)

從原理上來看,計算機用補碼表示數字,只有最高位進位沒有次高位進位的時候會產生溢出,但是最高位和次高位同時進位的時候沒有溢出

因為1.最高位(符號位)進位而次高位(真值最高位)沒有進位時,一定是2個負數相加,進位后產生負溢出,即兩個負數相加產生正數

   2.次高位進位而最高位沒有進位時,一定是2個正數相加,進位后使符號位產生改變(正溢出),倆正數相加產生負數

   3.最高位和次高位同時進位時,一定是次高位的進位導致最高位再次進位,即一正一負相加,比如11111111(-1)+00000001(+1)最高位進位,但結果依然正確,沒有發生溢出

所以有進位不一定溢出,有溢出不一定(最高位)進位


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM