zoukankan      html  css  js  c++  java
  • C++如何定义无穷大和无穷小

    int型变量的取值范围:[-2^31, 2^31 - 1] -> [-2147483648, 2147483647]

    0x7fffffff = 2147483647 = (2^31 - 1) = (1 << 31) - 1  

    0x3fffffff = 1073741823 = (2^30 - 1) = (1 << 30) - 1

    0x3f3f3f3f = 1061109567

    0x7fffffff = 2147483647,恰好等于int型变量的上界,所以在一些情况下用0x7fffffff表示无穷大是一个很好的选择

    但是在求图的最短路径时,往往需要进行无穷大数的比较而0x7fffffff再加上一个正数会溢出,成为负数,所以一般情况下,定义为0x3fffffff或者0x3f3f3f3f 就能满足要求

    无穷小:0xc0c0c0c0 = -1061109568

    定义方式:

    #define INF1 0x7fffffff
    #define INE2 0x3fffffff
    #define INF3 0x3f3f3f3f
    #define INF4 0xc0c0c0c0  //无穷小
    const int INF5 = 0x7fffffff;
    const int INF6 = 0x3fffffff;
    const int INF7 = 0x3f3f3f3f;
    const int INF8 = 0xc0c0c0c0; //无穷小

    或者

    如果是int,用INT_MAX表示正无穷,INT_MIN表示负无穷,需要包含头文件limits.h;

    如果是double,用DBL_MAX表示正无穷,DBL_MIN表示负无穷,需要包含文件float.h。

  • 相关阅读:
    HZNU 2019 Summer training 6
    HZNU 2019 Summer training 5
    HZNU 2019 Summer training 4
    Garlands CodeForces
    HZNU 2019 Summer training 3
    UVA
    HZNU 2019 Summer training 2
    Serge and Dining Room(线段树)
    HZNU 2019 Summer training 1
    【7-10 PAT】树的遍历
  • 原文地址:https://www.cnblogs.com/dreamzj/p/14334792.html
Copyright © 2011-2022 走看看