首页 > 其他分享 >溢出标志位OF与进位标志位CF判断

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

时间:2023-02-27 21:47:28浏览次数:45  
标签:标志 符号 二进制 CF 进位 2n 溢出

1、OF与CF概述

  1. OF(Overflow Flag,溢出标志位):有符号数之间加减运算的溢出标志
  2. CF(Carry Flag,进位标志位):无符号数之间加减运算的溢出标志
  3. 快速判断(加法)(减法可转换为加法) 
    • 有符号数的符号位进位和最高位进位不同时,OF=1,否则OF=0(记忆:0+0必然不溢出,此时符号位和最高位的进位相同,均为0)
    • 无符号数的最高位进位为1时,CF=1,否则CF=0
    • 对有符号数而言,
      • 同号相减,不溢出,OF=0
      • 异号相加,不溢出,OF=0
    • 对无符号数而言,
      • 大减小,不溢出,CF=0
      • 小减大,溢出,CF=1
  4. 注意
    • 二进制数的加减运算会导致OF和CF变化
      • 原因:整数的加减运算没有本质上的不同,都是二进制数字间进行加减运算
      • 虽然说OF是与有符号数有关,但无符号数进行运算时,OF也会被改变,但此时OF无意义,没人在乎他
      • 同理,有符号数运算时,CF也会相应发生变化,我们也不关心CF的变化
  5. 小tips
    • 减法转换为加法,直接用二进制算,从而可方便地判断溢出:[x]-[y]=[x]+[-y]

2、OF

  1. 加法判断
    • 异号数相加,必然不溢出,OF=0
    • 十进制:两有符号数相加,结果溢出,则OF=1,否则OF=0
      • 溢出:结果超过该数据类型的表示范围,一般为2n-1~2n-1-1,n为有符号整数的位数
    • 二进制:同号有符号数相加,若结果与它们符号不同,则OF=1,否则OF=0
  2. 减法判断
    • 同号数相减,必不溢出 
    • 十进制:若有符号数相减,结果溢出,则OF=1,否则OF=0
      • 溢出:结果超过该数据类型的表示范围,一般为2n-1~2n-1-1,n为有符号整数的位数
    • 二进制:异号有符号数相减,结果与被减数符号不同,则OF=1,否则OF=0

3、CF

  1. 加法判断
    • 十进制:两无符号数相加,结果溢出,则CF=1,否则CF=0
      • 溢出:结果超过该数据类型的表示范围,一般为0~2n-1,n为无符号整数的位数
    • 二进制:无符号数的最高位进位为1时,CF=1,否则CF=0
  2. 减法判断
    • 十进制:两无符号数相加,结果溢出,则CF=1,否则CF=0
      • 溢出:结果超过该数据类型的表示范围,一般为0~2n-1,n为无符号整数的位数
      • 简化判断:被减数小于减数字,如6-9,溢出
    • 二进制:两无符号数字相减,最高位发生借位,则CF=1,否则CF=0

 

标签:标志,符号,二进制,CF,进位,2n,溢出
From: https://www.cnblogs.com/FishSmallWorld/p/17161883.html

相关文章

  • CF813F - Bipartite Checking
    线段树分治。我们发现这个形式就是线段树分治,那么我们就线段树分治。我们考虑如何在按秩合并并查集上维护二分图的关系。假设我们现在在同一个并查集中的\(x\)和\(y\)......
  • CF813E - Army Creation
    这道题的主流做法是主席树。考虑离线怎么做,首先是莫队,但是很明显莫队很难往在线扩展。那么考虑线段树。首先进行一些分析,我们可以对于每个\(a\),将第\(i\)个\(a\)和......
  • 题解 CF1776F【Train Splitting】
    题意:有一个\(n\)点\(m\)边简单无向连通图,请用若干(至少为\(2\))种颜色对每条边染色,使得:对于每种颜色,仅由该颜色的边组成的生成子图不连通。对于每两种颜色,仅由该颜色......
  • Codeforces Global Round 15 CF1552 A~G 题解
    点我看题对两三年前的cf进行考古的时候偶然做到这场,像这种全是构造题和思维题的比赛还是比较少见的。题目本身很有意思,但是对于现场打比赛想上分的人来说体验就比较差了。......
  • Jzzhu and Sequences CF450B
    其中f(1)=x0,f(2)=y0,f(i)=f(i-1)+f(i+1),求f(n) #include<iostream>#include<cmath>#include<algorithm>usingnamespacestd;#defineN2int......
  • 2023 年 CCF 春季测试赛模拟赛 - 2 题解
    T1约数和标准解法\(n=a_1^{b_1}\timesa_2^{b_2}\dotsa_k^{b_k}\)那么根据算术基本定理的推广,约数个数和约数和都是可以快速计算得到约数和sum\(sum=(a_1^0......
  • CF1776M 题解
    引理1:若\(n\)为偶数,则答案为\(n\)。若\(n\)是叶子,则显然正确。若\(n\)不是叶子,则将整棵树看做以\(n\)为根的有根树,一定可以保证最后一个被删除的是根。故得......
  • 2023 年 CCF 春季测试赛模拟赛 - 2
    T1分治,\(a^b+\dots+1=(a^{\lfloor\frac{b}{2}\rfloor}+\dots+1)\times(a^{\lfloor\frac{b}{2}\rfloor+1}+1)\)。如果\(b\)是偶数,需要减掉\(a^{b+1}\)。......
  • Jumps,cf1455b,VJ-HZNUFeb1
    (仅做为个人笔记,反思)题目意思:开始在原点,返回到达x位置的操作数操作:1.在第k轮时走到+k位置(y+k)2.走-1位置(y-1)思路:先一直选择操作1,直到y>=x。1.若等于......
  • CF1637D Yet Another Minimization Problem
    定义某数组xx的权值为 sum{sum{a[i]+b[i]}}i<j<n 现在,给定两个长度为nn的数组a,ba,b。你可以执行若干次操作,每次操作选择一个下标ii,并交换ai,bi。求在......