当前位置:  开发笔记 > 编程语言 > 正文

如何找到整数类型在C++中可以表示的值范围?

如何解决《如何找到整数类型在C++中可以表示的值范围?》经验,为你挑选了3个好方法。

C++中整数值类型的大小和范围是特定于平台的.在大多数32位系统上找到的值可以在变量中找到.数据类型.- C++文档.您如何确定特定系统的实际大小和范围?



1> Adam..:

C风格

limits.h包含int和其他数据类型的最小值和最大值,这些值应该是您需要的:

#include  // C header
#include  // C++ header

// Constant containing the minimum value of a signed integer (–2,147,483,648)
INT_MIN; 

// Constant containing the maximum value of a signed integer (+2,147,483,647)
INT_MAX;

有关常量及其常用值的完整列表,请查看:Wikipedia - limits.h


C++风格

有一个基于模板的C++方法,正如其他评论者提到的那样:

  #include 

  std::numeric_limits

看起来像:

  std::numeric_limits::max();

它甚至可以做更多的工具,例如确定可能的数字位数或数据类型是否已签名:

  // Number of digits for decimal (base 10)
  std::numeric_limits::digits10;

  // Number of digits for binary
  std::numeric_limits::digits;

  std::numeric_limits::is_signed;


如果你还包括windows.h,请注意win32,max被定义为宏,你会得到奇怪的编译行为.
@Doug T.:使用(std :: numeric_limits :: max)()代替,或在此调用之前取消定义最大值.

2> Nemanja Trif..:

看一眼 std::numeric_limits



3> Doug T...:

为什么不确定并使用boost的数字类型?

即:

boost::uint32_t
boost::int32_t

等等


这很好,我说唯一真正的问题是对boost库的依赖.
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有