16进制加法减法溢出问题

请问如何判定16进制加法减法有溢出问题,谢谢?AX=9FD0H+D023H=61F3H,OF=1AX=6FF3H-9FD0H=D023H,OF=1AX=6FF3H-D02... 请问如何判定16进制加法减法有溢出问题,谢谢?
AX=9FD0H+ D023H=61F3H,OF=1
AX=6FF3H-9FD0H=D023H,OF=1
AX=6FF3H-D023H=9FD0H,OF=1
AX=147BH+ 80DCH=9557H,OF=0
AX=14C6H+80DCH=95A2H,OF=0 ,
AX=B568H+54B7H=0A1FH,OF=0 ,
AX=42C8H+608DH=A355H,OF=1 ,
AX=D023H+9FD0H=6FF3H,OF=1 ,
展开
 我来答 举报
做而论道
高能答主

推荐于2017-10-11 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
溢出,是补码运算的固有缺陷。
补码的符号位也参加了运算。
数值位也可以向符号位进位,就可能导致符号错乱,出现溢出。

只有发生下列四种情况,才会溢出:
正+正=负
正-负=负
负+负=正
负-正=正

那么,题目中的算式,溢出情况如下:

9FD0H + D023H = 61F3H, 负+负=正,溢出
6FF3H - 9FD0H = D023H, 正-负=负,溢出
6FF3H - D023H = 9FD0H, 正-负=负,溢出

147BH + 80DCH = 9557H, 正+负,绝不会溢出
14C6H + 80DCH = 95A2H, 正+负,绝不会溢出
B568H + 54B7H = 0A1FH, 负+正,绝不会溢出

42C8H + 608DH = A355H, 正+正=负,溢出
D023H + 9FD0H = 6FF3H, 负+负=正,溢出
琳琳姐277
2014-08-22 · TA获得超过356个赞
知道答主
回答量:125
采纳率:100%
帮助的人:57.9万
展开全部
是都溢出了,但是溢出后只是标志位置位(CF和OF)而已,算式还是继续的,需要你手动检查标志位 ;
CF没问题;
OF的值是运算结果最高有效位向高位的进位(CF的值)与到最高有效位的进位值异或,其结果发到溢出标志中。例如8位二进制数10000000和11111110相加,第六位想最高有效位的(第七位)无进位,但是第七位向高位有进位值(CF=1);
由于1 XOR 0 = 1,因此OF = 1;

最后的补充了,要是楼主再不明白也没辙了:

CPU如何知道算术运算时有符号运算还是无符号运算的呢?我只能给出一个初步听起来使人发懵的回答:CPU并不知道!CPU在算术运算之后根据一系列逻辑规则(像我上面讲的那段,那其实就是CPU真正判断OF的方法)设置各种状态标志,他并不知道哪些标志队程序员是重要的,程序员自己应该根据之心的操作的类型来选择解释哪些标志和忽略哪些标志;
追问
OF的值是运算结果最高有效位向高位的进位(CF的值)与到最高有效位的进位值异或,其结果发到溢出标志中。就是说16进制的D3到D4的进位与D4的进位相异或,就是OF的值。对不?
2 已赞过 已踩过<
你对这个回答的评价是?
评论(1) 举报 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式