整数类型 int、long和long long的区别


整数类型 int、long和long long的区别

早期的操作系统是16位系统,

  • int 用2字节表示,范围是-2^15 ~ 2^15-1;
  • long 用4字节表示,范围是-2^31 ~ 2^31-1。

后来发展到32位操作系统,

  • int 用4字节表示,范围是-2^31 ~ 2^31-1;
  • long 与 int 相同,也用4字节表示,范围是-2^31 ~ 2^31-1。

现在操作系统已发展到64位操作系统,但也有所差别:

  • 32位编译系统:int占4字节,与long相同,范围是-2^31 ~ 2^31-1。
  • 64位编译系统:int占4字节,long占8字节,long数据范围变为:-2^63~2^63-1

下图是在64位编译系统上的结果:

整数类型 int、long和long long的区别

cppreference 给出的定义如下:

  • int:basic integer type. It’s guaranteed to have a width of at least 16 bits. However, on 32/64 bit systems it is almost exclusively guaranteed to have width of at least 32 bits.
  • long:target type will have width of at least 32 bits.

long long 是 C++ 的64位整型的基本类型,从C99开始引入这个概念,在后续的标准中完善概念和定义,官方正式标准如下:

  • long long:target type will have width of at least 64 bits.(since C++11)

下表对不同的整数类型做了一个很好的总结:

整数类型 int、long和long long的区别


分享到:


相關文章: