计算机补码运算的溢出叛别方法?

 我来答
做而论道
高能答主

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

二进制补码,表示正负数,具有一定的表示范围。

当运算结果,超出了它所能表示的范围,就会溢出。

如果出现了溢出,这组代码,就不能正确表示结果。

 

八位二进制代码:0000 0000~1111 1111。

也就是十进制数:0~255。

它们如果是补码:0~127,就直接代表零和正数;

       128~255,则以补码代表-128~-1。

八位补码的范围:-128~+127。

 

在 127 上,再加上+1,就超出了范围,必然溢出。

这两个正数相加之后,将会得出128,却是个负数。

 

在 -128 上,再加上-1,也超范围,也会溢出。

这两个负数相加之后,将会得出 127,这是个正数。

 

补码计算出现了溢出,最重要的特征是:符号不正确。

你只要判断符号正确与否,就可以了。

另外,

能够超出范围的算法,一定是:正+正、负+负。

         捎带还有:正-负、负-正。

除了这四种算法之外的计算,都不可能溢出。

中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
越雪边念巧
2020-04-27 · TA获得超过3669个赞
知道大有可为答主
回答量:3140
采纳率:27%
帮助的人:174万
展开全部
回答:溢出了.如果题目直接给的数字,那么你直接计算开是否超出正127或者负128就可以了.
当然,如果你想用计算机那种方法来判断也是可以的,把两个数字转换成二进制
发现相加有进位(减法需要事先变成加法),而且两个数字的最高位都是1,那么就溢出了.但是这样很麻烦,也没必要.直接十进制算看看超出范围没有就行
追问:那-4-3
进行补码运算,有溢出吗?回答:没有溢出
追问:根据感觉判断是没有溢出,可是换成补码,运算后有进位,像是溢出了,所以不理解
回答:溢出不是看进位.是进位和两个数字的符号位综合起来看的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式