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

CF是无符号数溢出标志,OF是有符号数溢出标志。

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

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

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

方法一:根据表达式
OF=Cn异或Cn-1
Cn表示第n位的进位

CF=Cout异或Cin
Cin等价于Sub的选择控制,为1时表示做减法
加法时,CF为1表示有进位;减法时,CF取反为1表示有借位

方法二:人为相加
判定CF时,把两者当成无符号数,看是否进位
判定OF时,把两者当成有符号数,看是否进位或借位

用下边这俩做题
判断OF
OF=Cn^Cn-1
Cn表示第n位是否发生进位,如是,则为1,否则为0
这里的第n位指的是机器数的最高位,第n-1位就是次高位

判断CF(人为操作)
把机器数都当作无符号数来进行加减法

	两数相加时,如果最高位有进位,则CF=1,否则为0
	两数相减时,如果被减数最高位有借位,则CF=1,否则为0
  • 14
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值