ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

std::numeric_limits<int>::min()

2021-12-30 05:02:00  阅读:189  来源: 互联网

标签:std limits min max NaN denorm numeric round


 
#include <limits>
#include <iostream>
 
//
/* reference:
    http://www.cplusplus.com/reference/limits/numeric_limits/
    https://msdn.microsoft.com/en-us/library/c707ct0t.aspx
*/
int main()
{
    std::cout << std::boolalpha;
    std::cout << "Minimum value for int: " << std::numeric_limits<int>::min() << std::endl;
    std::cout << "Maximum value for int: " << std::numeric_limits<int>::max() << std::endl;
    std::cout << "int is signed: " << std::numeric_limits<int>::is_signed << std::endl;
    std::cout << "Non-sign bits in int: " << std::numeric_limits<int>::digits << std::endl;
    std::cout << "int has infinity: " << std::numeric_limits<int>::has_infinity << std::endl;
 
    std::cout << "Minimum value for float: " << std::numeric_limits<float>::min() << std::endl; // min returns the smallest positive value the type can encode, not the lowest
    std::cout << "Lowest value for float: " << std::numeric_limits<float>::lowest() << std::endl; // the lowest value
    std::cout << "Maximum value for float: " << std::numeric_limits<float>::max() << std::endl;
    std::cout << "float is signed: " << std::numeric_limits<float>::is_signed << std::endl;
    std::cout << "Non-sign bits in float: " << std::numeric_limits<float>::digits << std::endl;
    std::cout << "float has infinity: " << std::numeric_limits<float>::has_infinity << std::endl;
 
    std::cout << "Minimum value for unsigned short: " << std::numeric_limits<unsigned short>::min() << std::endl;
    std::cout << "Maximum value for unsigned short: " << std::numeric_limits<unsigned short>::max() << std::endl;
 
    std::cout << "is_specialized(float): " << std::numeric_limits<float>::is_specialized << std::endl;
    std::cout << "is_integer(float): " << std::numeric_limits<float>::is_integer << std::endl;
    std::cout << "is_exact(float): " << std::numeric_limits<float>::is_exact << std::endl;
    std::cout << "is_bounded(float): " << std::numeric_limits<float>::is_bounded << std::endl;
    std::cout << "is_modulo(float): " << std::numeric_limits<float>::is_modulo << std::endl;
    std::cout << "is_iec559(float): " << std::numeric_limits<float>::is_iec559 << std::endl;
    std::cout << "digits10(float): " << std::numeric_limits<float>::digits10 << std::endl;
    std::cout << "radix(float): " << std::numeric_limits<float>::radix << std::endl;
    std::cout << "min_exponent(float): " << std::numeric_limits<float>::min_exponent << std::endl;
    std::cout << "max_exponent(float): " << std::numeric_limits<float>::max_exponent << std::endl;
    std::cout << "min_exponent10(float): " << std::numeric_limits<float>::min_exponent10 << std::endl;
    std::cout << "max_exponent10(float): " << std::numeric_limits<float>::max_exponent10 << std::endl;
    std::cout << "epsilon(float): " << std::numeric_limits<float>::epsilon() << std::endl;
    std::cout << "round_style(float): " << std::numeric_limits<float>::round_style << std::endl;
 
    std::cout << "The smallest nonzero denormalized value for float: "
        << std::numeric_limits<float>::denorm_min()<< std::endl;
    std::cout << "The difference between 1 and the smallest value greater than 1 for float: "
        << std::numeric_limits<float>::epsilon()<< std::endl;
    std::cout << "Whether float objects allow denormalized values: "
        << std::numeric_limits<float>::has_denorm << std::endl;
    std::cout << "Whether float objects can detect denormalized loss: "
        << std::numeric_limits<float>::has_denorm_loss << std::endl;
    std::cout << "Whether float objects have quiet_NaN: "
        << std::numeric_limits<float>::has_quiet_NaN << std::endl;
    std::cout << "Whether float objects have a signaling_NaN: "
        << std::numeric_limits<float>::has_signaling_NaN << std::endl;
    std::cout << "The base for type float is:  "
        << std::numeric_limits<float>::radix << std::endl;
    std::cout << "The maximum rounding error for type float is:  "
        << std::numeric_limits<float>::round_error() << std::endl;
    std::cout << "The rounding style for a double type is: "
        << std::numeric_limits<double>::round_style << std::endl;
    std::cout << "The signaling NaN for type float is:  "
        << std::numeric_limits<float>::signaling_NaN() << std::endl;
    std::cout << "Whether float types can detect tinyness before rounding: "
        << std::numeric_limits<float>::tinyness_before << std::endl;
    std::cout << "Whether float types have implemented trapping: "
        << std::numeric_limits<float>::traps << std::endl;
 
    return 0;
}

 

标签:std,limits,min,max,NaN,denorm,numeric,round
来源: https://www.cnblogs.com/hshy/p/15747347.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有