zoukankan      html  css  js  c++  java
  • climit 头文件的内容

    int、long和long long

    C++的short、int、long和long long类型通过使用不同数目的位来存储值(关于位的概念自行了解),最多能够表示4中不同的整数宽度。C++提供了一种灵活的标准,它确保了最小长度(从C语言借鉴而来),如下:
    1. short 至少16位
    2. int 至少与 short 一样长
    3. long 至少 32 位,且至少与 int 一样长
    4. long long 至少64位,且至少与 long 一样长 (此类型为 C++11 新增,旧的编译器可能不支持)


    当前很多系统都使用最小长度,即short为16位,long为32位。这仍然为int提供了多种选择,其宽度可以是16位、24位或32位,同时又符合标准;甚至可以是64位,因为long 和 long long 至少长64位。通常,在老式的 IBM PC 的实现中,int的宽度为16位(与short相同),而在Windows XP及以上、Mac OS X、VAX和很多其它微型计算机的实现中为32位,与long相同。
    要知道系统中整数的最大长度,可以在程序中使用 C++ 工具来检查类型的长度。首先,sizeof 运算符返回类型或变量的长度,单位为字节。需要注意的是,“字节”的含义依赖于实现,因此在一个系统中,两字节的int可能是16位,而在另一个系统中可能是32位。其次,头文件 climits(在老式实现中为 limits.h)中包含了关于整形限制的信息,它定义了表示各种限制的符号名称。例如,INT_MAX 为 int 的最大取值, CHAR_BIT 为字节的位数。

    演示代码

    1    #include <iostream>
    2    #include <climits>
    3     
    4    int main()
    5    {
    6        using namespace std;
    7     
    8        int n_int = INT_MAX; //max value for integer number
    9        short n_short = SHRT_MAX;
    10        long n_long = LONG_MAX;
    11        long long n_llong = LLONG_MAX;
    12     
    13        cout << "int is " << sizeof (int) << " bytes." << endl;
    14        cout << "short is " << sizeof n_short << " bytes." << endl;
    15        cout << "long is " << sizeof n_long << " bytes." << endl;
    16        cout << "long long is " << sizeof n_llong << " bytes." << endl;
    17        cout << endl;
    18     
    19        cout << "Maximum values: " << endl;
    20        cout << "int: " << n_int << endl;
    21        cout << "short: " << n_short << endl << "long: " << n_long << endl << "long long: " << n_llong << endl << endl;
    22     
    23        cout << "Minimum int value = " << INT_MIN << endl;
    24        cout << "Bits per byte = " << CHAR_BIT << endl;
    25     
    26        return 0;
    27    }
       

    运行结果如下(环境:Windows 7 64位,VC++ 2008 sp1, SDK 6.1):
    int is 4 bytes.
    short is 2 bytes.
    long is 4 bytes.
    long long is 8 bytes.

    Maximum values:
    int: 2147483647
    short: 32767
    long: 2147483647
    long long: 9223372036854775807

    Minimum int value = -2147483648
    Bits per byte = 8

    下面来看一下上述程序的主要编程特性

    1. 运算符 sizeof 和头文件 climits
    sizeof 运算符指出,在使用8位字节的系统中,int的长度为4个字节。可对类型名或变量名使用 sizeof 运算符。对类型名(如 int)使用 sizeof 运算符是,应将名称放在括号中;但对变量名括号是可选的。
    头文件 climits 定义了符号常量来表示类型的限制。编译器厂商提供了 climits 文件,该文件指出了其编译器中的值。
    下面将依次列举一些 climits 中的符号常量

      1. CHAR_BIT :char的位数
      2. CHAR_MAX :char的最大值
      3. CHAR_MIN :char的最小值
      4. SCHAR_MAX :signed char的最大值
      5. SCHAR_MIN :signed char的最小值
      6. UCHAR_MAX :unsigned char的最大值
      7. SHRT_MAX :short 的最大值
      8. SHRT_MIN :short 的最小值
      9. USHRT_MAX :unsigned short 的最大值
      10. INT_MAX :int 的最大值
      11. INT_MIN :int 的最小值
      12. UINT_MAX :unsigned int 的最大值
      13. LONG_MAX :long 的最大值
      14. LONG_MIN :long 的最小值
      15. ULONG_MAX :unsigned long 的最大值
      16. LLONG_MAX :long long 的最大值
      17. LLONG_MIN :long long 的最小值
      18. ULLONG_MAX :unsigned long long 的最大值
  • 相关阅读:
    springMVC+MyBatis+Spring+maven 整合(1)
    mysql.zip免安装版配置
    5.6 循环依赖
    5.5 准备创建bean
    5.4 获取单例
    SQL Server(九)——事务
    SQL Server(七)——存储过程
    SQL Server(八)——触发器
    SQL Server(六)——索引、视图和SQL编程
    SQL Server(五)——常用函数 转
  • 原文地址:https://www.cnblogs.com/stepping/p/5744392.html
Copyright © 2011-2022 走看看