计算机运算时是如何判断发生溢出的?

计算机运算时是如何判断发生溢出的?,第1张

容器太小,就会溢出。

两种常用的数字,在计算机中,都是用机器码代表的。其范围如下:

机器码,无论代表什么数字,只要运算结果超出范围,就是【溢出】。

但是,在计算机专业人的嘴里,就不一样了。

【无符号数的溢出】,不叫溢出,要叫做【进位】。

【带符号数的溢出】,才叫做【溢出】。

搞计算机的这些人,基本概念不清,却自命不凡!

冒充脑回路清奇。。。正常人对此,就只能无语了。

---------------------------

按照计尺兆算机专业的说法:

溢出,是指“补码运算结果超出范围”。

溢出的特征,是“符号错误”。

知道了这些,判断是否溢出,就很容易了。

一、无符号数的运算,肯定不会溢出。只有进位。

二、只有:正+正、负+负,才有可能超出范围。不是这些,就绝不会溢出。

三、人工用数值计算。和,如果没有超出范围,就没有溢出。

四、人工用补码计算。和的符号,如果正确,就没有溢出。

五、编个程序,让计算机计算。然后观察溢出标志位,为零,就没有溢出。胡陪

六、人工用补码计算,如“最高位的进位”和“次高位的进位”相同,就没有溢出。裤困蠢

第六种,本是 CPU 的硬件所用的方法。

硬件,其理论基础,是很晦涩难懂的。

异或运算,一般也不需要初学者掌握。

但是,一些爱得瑟的老师,偏爱介绍这种方法。

却又拿不出任何的理论!

其实,这是很无聊的表现,就是想着难为学生。

如果你的存储器只能存3位二进制数

那么对于无符号数

111加上1之后本银毕基应该等于1000,而存储器存不了那么多。这时在存储器中的值就是

000,那么最高位的1就“溢出”了,存储器中不是正确的计算结果了

而进位就是导致溢出的原因之一(移位也可以溢出),它的理解和数学十进制的进位没什数如么不同,只不过它锋谨的进位不是无限的,会溢出

001+001=010 这就是进位


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12564880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存