有进位一定溢出吗?有溢出一定进位吗?来看这里
Posted 哇,被发现了☜(゚ヮ゚☜)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有进位一定溢出吗?有溢出一定进位吗?来看这里相关的知识,希望对你有一定的参考价值。
有进位不一定溢出
有溢出不一定进位
因为,溢出是结果超过了机器能表达的范围,有可能没有进位
而最高位进位时分情况,当最高位(符号位)进位时伴随次高位(真值最高位)的进位,就不会产生溢出
比如
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)最高位进位,但结果依然正确,没有发生溢出
所以有进位不一定溢出,有溢出不一定(最高位)进位
我是一个还没有想好写点啥的小尾巴
以上是关于有进位一定溢出吗?有溢出一定进位吗?来看这里的主要内容,如果未能解决你的问题,请参考以下文章