zoukankan      html  css  js  c++  java
  • CF和OF的区别

    进位标志CF和溢出标志OF的区别:

    有符号数和无符号数只是认为的进行区分,计算机从来不区分有符号数和无符号数。对于运算的数来说,只要符合进位的情况,CF就置1.只要符合溢出的情况,OF就置1.但是后续的进行的一些数值判断等操作,无符号数多依据CF标志进行,有符号数多依据OF标志进行。如比较两个数的大小,无符号数根据CF标志进行,有符号数依据OF标志进行。

    •    计算机硬件判断溢出的方法如下:
        最高位有进位但次高位没有进位,或者最高位无进位但次高位有进位;也就是最高位和次高位一个有进位一个无进位。(最高位和次高位进位不一致的时候溢出)

    •    我们不是机器不使用这么机械的方法,可以使用如下规则(汇编教材第二版第19页):
        只有当两个相同符号数相加(含两个不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出。

    •    例如:3AH+7CH=00111010B+01111100B=10110110B=B6H
        次高位一个是0一个是1,但还有一个低位进位1,所以次高位有进位;最高位两个0,还有次高位进位,结果只是1没有进位,所以计算机判断有溢出。
        我们判断,看最高位,两个数最高位相同为0,相加后结果最高位为1,所以有溢出。

        再如:3AH+8DH,我们可以马上判断出没有溢出。因为这是两个不同符号数相加。

        利用调试程序可以帮助你验证。

        将数据按有符号数进行补码变换求出对应十进制真值,然后判断也可以,但比较麻烦,不如上述规则简单明了

    参考资料:

    http://www5.zzu.edu.cn/qwfw/ynjd/clqjg/4a44c05f3f5a870e013f6424857a043d.html

  • 相关阅读:
    Java内部类详解
    浅谈Java中的深拷贝和浅拷贝(转载)
    native为本地方法
    Java NIO:NIO概述
    Java NIO:浅析I/O模型
    Hash表
    浅谈Java中的hashcode方法
    spring boot学习(转)
    Spring Boot修改内置Tomcat端口号
    K8S
  • 原文地址:https://www.cnblogs.com/3me-linux/p/3989008.html
Copyright © 2011-2022 走看看