溢出OF和进位CF标志位的判定

溢出OF和进位CF标志位的判定一、学习CF与OF,要始终牢记一点。CF是无符号数溢出标志,OF是有符号数溢出标志。通俗一点说就是,即使有符号数相加/相减导致了CF=1也没什么意义,不能说明结果的正确与否。此时,OF=1,则说明结果溢出,出现错误;OF=0,说明结果正确。这个过程根本和CF没关系,CF=1/0,都不会影响。同理也可以得出OF对无符号数也无影响。举个例子:[9-6]补=[9]补-[6]补=[9]补+[-6]补[9]…

大家好,又见面了,我是你们的朋友全栈君。

一、学习CF与OF,要始终牢记一点。CF是无符号数溢出标志,OF是有符号数溢出标志。

通俗一点说就是,即使有符号数相加/相减导致了CF=1也没什么意义,不能说明结果的正确与否。此时,OF=1,

则说明结果溢出,出现错误;OF=0,说明结果正确。这个过程根本和CF没关系,CF=1/0,都不会影响。同理也

可以得出OF对无符号数也无影响。

举个例子:

[9-6]补=[9]补-[6]补=[9]补+[-6]补

[9]补-[6]补

                00001001

            –   00000110

            ——————

                 00000011

            此时,OF=0,CF=0

 

[9]补+[-6]补

              00001001

          +  11111010

           ——————

           1  00000011

           此时,OF=0,CF=1

大家可能已经发现了,通过公式将减法转换成加法,貌似不完全等价,因为CF不同。

其实不然,CF的值不影响结果,此时不论是加法还是减法都是有符号数。不论CF=1/0,只要OF=0,

结果都是正确的。当然,还有一点值得注意。毕竟CF在两种计算方法中取值不同,如果有条件跳转

指令的话,程序的执行可能会受到影响。

 

二、简单介绍下CF与OF的计算方法

1、CF的判断

①加法

十进制角度,如果两无符号数相加,结果大于2^n-1(n为位数),则CF=1,否则CF=0;

二进制角度,如果两无符号数相加,最高位向前有进位,则CF=1,否则CF=0。

②减法

十进制角度,如果两无符号数相减,减数大于被减数(也即结果不在0—2^n-1内),则CF=1,否则CF=0;

二进制角度,如果两无符号数相减,最高位向前游借位,则CF=1,否则CF=0。

2、OF的判断

①加法

十进制角度,如果两有符号数相加,结果不在-2^(n-1)~2^(n-1)-1内,则OF=1,否则OF=0;

二进制角度,如果两有符号数同号,而相加结果与之异号,则OF=1,否则OF=0。

②减法

十进制角度,如果有符号数相减结果在-2^(n-1)~2^(n-1)-1内,则OF=1,否则OF=0;

二进制角度,如果两个数异号,而相减结果与被减数符号相反,则OF=1,否则OF=0。

 

三、这里值得一提的是,在第二部分介绍的计算规则,说白了都是为了方便人的计算。而在计算机中,

CPU根本不知道参与运算的数是有符号的还是无符号的。它只是按照一定的指令、一定的规则来计算,

然后设置标志、运用标志。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158241.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(2)


相关推荐

  • Application received signal SIGABRT[通俗易懂]

    ApplicationreceivedsignalSIGABRT(null)(( 0CoreFoundation0x0000000182bbadc8<redacted>+148 1libobjc.A.dylib0x000000018221ff80ob…

  • window location href无反应,不跳转的情况的解决

    window location href无反应,不跳转的情况的解决在进行js练习的时候,遇到了一个问题,在操作页面跳转的时候,使用window.location.href无法进行跳转,经过一系列的排查,和分析,最终解决这个问题。$("#quit").click(function(){debugger;if(confirm("你确定要退出嘛?")){sessionStorage.r…

  • 格式化hdfs的命令_hadoop的启动命令

    格式化hdfs的命令_hadoop的启动命令总结:上传文件:put、copyFromLocal、moveFromLocal下载文件:get、copyToLocal、moveToLocal查看文件:text、cat、tail合并文件:getmerge命令详解HDFS命令基本格式:hadoopfs-cmd<args>表格:选项名称使用格式含义-ls-ls查看指定路径的当前目录结构-lsr-lsr递归查看指定路径的目录结…

  • 小学计算机画线反思,小学四年级数学上册《画平行线》教学反思[通俗易懂]

    小学计算机画线反思,小学四年级数学上册《画平行线》教学反思[通俗易懂]小学四年级数学上册《画平行线》教学反思过去,对于平行线的画法,我也感到很不理解,特别是用尺子移来移去,实在太麻烦,对于平行线的理解,学生只知道“在同一平面内不相交的两条直线是平行线”,而不相交的实质是“两条直线间的距离是固定的.”学生并没有直观感受。正是基于这样的认识画平行线的教学只能由教师传授给学生,他们也只能是机械的模仿,也就是简单的完成操作工的活动,没有任何思维的含量,不能算真正意义上的脑力…

  • 模糊数学评价体系_灰色模糊综合评价

    模糊数学评价体系_灰色模糊综合评价>`建模算法整理`,文章主要介绍了模糊综合评价中的要把论域中的对象对应评语集合一个指定的评语的情况(一级模糊评价)>`参考学习资料`:清风数学建模数学建模算法与程序>`其他资源`:2016到2020美赛o奖论文===姜启源司守奎电子书===论文模板====算法代码>如果需要可私信或者评论

    2022年10月29日
  • 单点登录SSO解决方案之SpringSecurity+JWT实现

    单点登录SSO解决方案之SpringSecurity+JWT实现  通过前面几天文章我们详细的介绍了SpringSecurity的使用,本文我们来看下,结合JWT来实现单点登录操作。一、什么是单点登陆  单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统二、简单的运行机制  单点登录的机制其实是比较简单的,用一个现实中的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号