两个二进制有符号数(10111010)与(1101001)相加,结果是什么是否溢出

2022-07-31 科技 102阅读

如果是单字节8位数的话结果是 00100011,不溢出因为第7位和第6位都有进位,所有结果不溢出。

溢出的判别:

计算机中判别溢出的方法通常采用双高位判别法。双高位判别法利用符号位及最高数值位的进位情况来判断是否发生了溢出。为此,需引进两个符号: Cg和Cp.

Cs:若符号位发生进位,则Cs=1;否则Cs=0。

Cp:若最高数值位发生进位,则Cp=1;否则Cp=0

当两个正数补码相加时,若数值部分之和大于2n-1,则数值部分必有进位Cp= 1;而符号位却无进位Cg=0。这时CsCp的状态为“01", 发生正溢出。

当两个负数补码相加时,若数值部分绝对值之和大于2n-1,则数值部分补码之和必小于2n-1,Cp=0;而符号位肯定有进位Cg= 1,这时CSCP的状态为“10”, 发生负溢出。当不发生溢出时,Cg和Cp的状态是相同的,即CgCp的状态为“00”或 “11"。

扩展资料

有符号数是针对二进制来讲的。用最高位作为符号位,“0”代表“+”,“1”代表“-” ;其余数位用作数值位,代表数值。

有符号数的表示:计算机中的数据用二进制表示,数的符号也只能用0/1表示。一般用最高有效位(MSB)来表示数的符号,正数用0表示,负数用1表示。

有符号数的编码方式,常用的是补码,另外还有原码和反码等。用不同二进制编码方式表示有符号数时,所得到的机器数可能不一样,但是真值是相同的。

上面都是两个8bit相加,从左至右第一个bit位是符号位,第二个bit位是最高数值位,如果结果超出8bit,则超出的位不会在计算机中存储,因此造成溢出现象

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com