【转载】C++的整型常量的范围

有时要在程序中设置一个大的整数表示正的无穷大,熟悉PASCAL的人都知道有两个经常用到的符号常量叫MAXINT和MAXLONGINT。C++中该怎么办呢?
其实在头文件limits中有关于各种整型常量的取值范围和最大整型和最小整型的定义。例如,
                |                                   signed                               |                       unsigned  
  ------------------------------------------------------------------------------------------------------------------------ 
  类型         |                 最小值                             最大值           |                       最大值  
  ------------------------------------------------------------------------------------------------------------------------ 
  字符         |                 SCHAR_MIN                   SCHAR_MAX         |                     UCHAR_MAX  
  短整型     |                 SHRT_MIN                     SHRT_MAX            |                     USHRT_MAX  
  整型         |                 INT_MIN                         INT_MAX               |                     UINT_MAX  
  长整型     |                 LONG_MIN                      LONG_MIN           |                     ULONG_MAX
  64位整型 |                 LONG_LONG_MIN      LONG_LONG_MAX  |                  ULONG_LONG_MAX
有了这些预定义的常量,我们就可以在程序中直接使用它们。例如,下面的程序就可以输出无符号的64位整型,这也是目前可以表示的最大的整数
#include <iostream>
#include <limits>
using namespace std;
int main()
{
    cout << ULONG_LONG_MAX << endl;
    return 0;
}

此外,要给一个long long 型整数直接赋一个特别大的整数时,需要在整数后加后缀LL,否则会报告整数超过范围的错误。
如下例:
#include <iostream>
#include <limits>
using namespace std;

int main()
{
    long long x = 123456789012345LL;  //不加后缀LL就会在编译时出错。
    cout << x << endl;

    return 0;
}

以上的<limits>中的内容在poj中提交出现编译错误,但是<climits>头文件则可以在poj中提交。

转载自http://blog.sina.com.cn/s/blog_416fb8fd0100boyd.html

  1. #include<iostream>   
  2. #include<climits>   
  3. using namespace std;   
  4.   
  5. int main()   
  6. {   
  7.   cout<<"long long的最大值:"<<LLONG_MAX<<endl;   
  8.   cout<<"long long的最小值:"<<LLONG_MIN<<endl;   
  9.   cout<<"unsigned long long的最大值:"<<ULLONG_MAX<<endl<<endl;   
  10.   
  11.   cout<<"__int64的最大值:"<<_I64_MAX<<endl;   
  12.   cout<<"__int64的最小值:"<<_I64_MIN<<endl;   
  13.   cout<<"unsigned __int64的最大值:"<<_UI64_MAX<<endl<<endl;   
  14.   
  15.     
  16.   
  17.   return 0;   
  18.  

 

posted @ 2010-03-20 17:30  北海小龙  阅读(2363)  评论(0编辑  收藏  举报