单片机程序状态字PSW中的CY 和OV

单片机程序状态字PSW中的CY和OV,当C8=1时,有进位,超出了范围;当C8异或C7=1时有溢出,带符号的超出了范围,,请问同样是超出了范围,为什么一个叫进位一个叫溢出... 单片机程序状态字PSW中的CY 和OV,当C8=1时,有进位,超出了范围; 当C8异或C7=1时 有溢出,带符号的超出了范围,,请问同样是超出了范围,为什么一个叫进位 一个叫溢出呢?? 谢谢!! 展开
 我来答
做而论道
高能答主

2022-09-26 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部

首先,要知道,什么是溢出?

一般来说,容器太小,盛不下了,就会溢出。

在计算机方面,溢出,就是数据太大,超出了预定的范围。

数字,在计算机中,都是用机器码代表的。

人们最常用的“自然数”和“整数”,其表达范围如下:

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

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

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

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

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

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

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

那么,就按照计算机专业的说法吧:

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

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

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

CPU 每次做完运算,就会给出结果和“进位标志位 CY”和“溢出标志位 OV”。

如果 OV=1,就代表:刚刚做的计算,发生了溢出。

人工判断是否溢出,有如下六个方法。

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

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

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

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

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

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

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

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

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

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

却又拿不出任何的理论!

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

匿名用户
2013-08-09
展开全部
第8位是为正负号专门使用的,实际使用是7位超过了当然不能给第8位了,所以就叫溢出了,不带符号位的可以使用的是8位,七位过了就进第8位了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-09
展开全部
二进制中是0~7(三位:2的三次方),7就到顶了,没8就超出范围了,大概就这个意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-09
展开全部
这个是区别于是否有无符号而这么定义的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式