关于单片机OV溢出的问题

如果cpu是8位,OV溢出是不是其有符号数的结果不在-128~127里面... 如果cpu是8位,OV溢出是不是其有符号数的结果不在-128~127里面 展开
 我来答
做而论道
高能答主

推荐于2017-10-12 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
OV溢出是不是其有符号数的结果不在-128~127里面
----
不是。

要想理解溢出,先要懂得什么是补码

用 0~255,代表有符号数时,128~255,就是负数的补码。

100 + 30 = 130,130 就是-126 的补码。

100 + 30 = -126,正+正=负,这就是溢出。

溢出,共有四种情况。
570957790
2014-01-16
知道答主
回答量:19
采纳率:0%
帮助的人:16.8万
展开全部
不是 判断结果正数加正数等于负数,或者负数加负数等于正数才会溢出,并且注意下一步运算可能会消除上一步的OV位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨瑜仍妙梦
2020-01-24 · TA获得超过3784个赞
知道大有可为答主
回答量:3088
采纳率:26%
帮助的人:170万
展开全部
对于单片机,不如先将两个操作数扩大一个类型,如原来是signed
char
就扩成 signed
short然后再运算,运算后再判断是否在signed
char
下相加会溢出,即大于127。这个比相加后再判断要好一点。
数据长度扩大后,肯定不会出现溢出了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7247a56
2014-01-15 · TA获得超过4616个赞
知道大有可为答主
回答量:1422
采纳率:92%
帮助的人:489万
展开全部
溢出的结果还是会在-128~127里,只是数值错了。
追问
不是溢出的结果超出-128~127吗
追答
比如加法溢出,
MOV A,#80H

ADD A,#80H
这个时候 80H+80H=100H=256就会溢出
OV会置1,但是运算结果A=00,还是在-128~127之间啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huzi2099
2014-01-16 · TA获得超过1172个赞
知道小有建树答主
回答量:1887
采纳率:82%
帮助的人:641万
展开全部
OV表示的逻辑结果是运算中出现了向第九位的进位或借位
另外计算机算术运算不需要区分有无符号数,努力理解这句话.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式