整數類型 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的區別


分享到:


相關文章: