long和int表示长度一样吗(整数类型intlong和long)

long和int表示长度一样吗(整数类型intlong和long)(1)

早期的操作系统是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位编译系统上的结果:

long和int表示长度一样吗(整数类型intlong和long)(2)

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)

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

long和int表示长度一样吗(整数类型intlong和long)(3)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页