溢出标志位OF与进位标志位CF判断

溢出标志位OF与进位标志位CF判断

1、OF与CF概述

OF(Overflow Flag,溢出标志位):有符号数之间加减运算的溢出标志

CF(Carry Flag,进位/借位标志位):无符号数之间加减运算的溢出标志

快速判断(加法)(减法可转换为加法)

有符号数的符号位进位和最高位进位不同时,OF=1,否则OF=0(记忆:0+0必然不溢出,此时符号位和最高位的进位相同,均为0)

无符号数的最高位进位为1时,CF=1,否则CF=0

对有符号数而言(要求两个数都是有符号数),

同号相减,不溢出,OF=0

异号相加,不溢出,OF=0

对无符号数而言(要求两个数都是无符号数),

大减小,不溢出,CF=0

小减大,溢出,CF=1

注意

二进制数的加减运算会导致OF和CF变化

原因:整数的加减运算没有本质上的不同,都是二进制数字间进行加减运算

虽然说OF是与有符号数有关,但无符号数进行运算时,OF也会被改变,但此时OF无意义,没人在乎他

同理,有符号数运算时,CF也会相应发生变化,我们也不关心CF的变化

小tips

减法转换为加法,直接用二进制算,从而可方便地判断溢出:[x]补-[y]补=[x]补+[-y]补

2、OF

加法判断

异号数相加,必然不溢出,OF=0

十进制:两有符号数相加,结果溢出,则OF=1,否则OF=0

溢出:结果超过该数据类型的表示范围,一般为-2n-1~2n-1-1,n为有符号整数的位数

二进制:同号有符号数相加,若结果与它们符号不同,则OF=1,否则OF=0

减法判断

同号数相减,必不溢出

十进制:若有符号数相减,结果溢出,则OF=1,否则OF=0

溢出:结果超过该数据类型的表示范围,一般为-2n-1~2n-1-1,n为有符号整数的位数

二进制:异号有符号数相减,结果与被减数符号不同,则OF=1,否则OF=0

3、CF

加法判断

十进制:两无符号数相加,结果溢出,则CF=1,否则CF=0

溢出:结果超过该数据类型的表示范围,一般为0~2n-1,n为无符号整数的位数

二进制:无符号数的最高位进位为1时,CF=1,否则CF=0

减法判断

十进制:两无符号数相减,结果溢出,则CF=1,否则CF=0

溢出:结果超过该数据类型的表示范围,一般为0~2n-1,n为无符号整数的位数

简化判断:被减数小于减数字,如6-9,溢出

二进制:两无符号数字相减,最高位发生借位,则CF=1,否则CF=0

相关推荐

穿越火线骂人禁言多久_穿越火线骂人被禁言
365彩票客户端下载

穿越火线骂人禁言多久_穿越火线骂人被禁言

🪐 06-27 👁️ 2041
继电器的触点有正负极性之分,如果接反会有什么风险?
365彩票客户端下载

继电器的触点有正负极性之分,如果接反会有什么风险?

🪐 07-11 👁️ 7268
资产成本费用有哪些
365彩票客户端下载

资产成本费用有哪些

🪐 07-09 👁️ 3607