long与int的区别

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

  • int用二字节表示,范围是-32768~32767;(五位数

  • long用4字节表示,范围是-2147483648~2147483647。(十位数

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

  • int 用4字节表示,与long相同。

目前的操作系统已发展到64位操作系统,在实际的使用中,long与int几乎没有区别:

  • int占四字节,与long相同。范围均为-2147483648~2147483647。(十位数)。
  • 可以通过sizeof(int)和sizeof(long)来查看字节大小

既然long int(即long)与int相同,那么为什么还有long int这种尴尬的类型呢?

  • 原因是早期的C编译器定义了long int占用4个字节,int占用2个字节,long int是名副其实的长整型
  • 在ANSI C的标准中,对长整型的定义也是long int应该至少和int一样长,而不是long int 一定要比int占用存储字节长。(新版的C/C++标准兼容了早期的这一设定)

所以正确的关系是:
l o n g ≥ i n t ≥ s h o r t long≥int≥short long≥int≥short

long与long long的区别

long long则不同,long long是C++的64位整型的基本类型“现任”长整型,从C99开始引入这个概念,在后续的标准中完善概念和定义,long long占用8个字节,数据表示范围也从int的[-231,231-1]升级到long long的[-263,263-1]

  • 占用内存字节数不同:
    long 类型所占字节数为:4,是一个32位的存储单元。
    long long类型所占字节数为:8,是一个64位的存储单元。
    对于大型计算,常常会遇到很大的整数,并超出int所表示的范围,这时要使用long类型。long long类型则涉及更大的整数。

  • 数值范围不同:

long 类型表示范围为:-2147483648~2147483647。
long long类型表示范围为:9223372036854775808~+9223372036854775807。(19位数)

总结

类型 储存字节 表示范围
short int 2 -32768~+32767(五位数)
int 4 -2147483648~2147483647(十位数)
long 4 -2147483648~2147483647(十位数,约二十亿,约1010
long long 8 9223372036854775808~+9223372036854775807(九百亿亿,约1019
__int64 8 9223372036854775808~+9223372036854775807

__int64并不是正式规范,与long long具有相同的效果,比如,如果你使用的是MinGW的编译器的话,打开__int64的定义会发现——

#define __int64 long long

VS 2017虽然把__int64作为了一种内置类型,但是也做了类似的处理,使得__int64与long long没有肉眼可见的差别。但如果你使用的开发环境比较早期,那么可能就要专门研究一下__int64了。

参考链接
https://blog.csdn.net/CV_Jason/article/details/85244813

long与int与long long的区别相关推荐

  1. .net Int16 、(int Int32)、 Int64 的区别

    2019独角兽企业重金招聘Python工程师标准>>> .net Int16 .(int Int32). Int64 的区别 easonjim 2015-09-25 01:41:00 ...

  2. 两个int()方法的区别

    这两个方法的最大不同是它们对null值的处理方法:  Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常. 没搞清楚Convert.To ...

  3. 面试刷题7:int和Integer有什么区别?

    原始数据类型是java系统的重要组成元素.java号称一切都是对象,原始数据类型除外. 我是李福春,我在准备面试,今天我们来回答一个问题: int和Integer有什么区别? int是原始数据类型,并 ...

  4. java的double是什么意思_java中int和double有什么区别

    java中int和double有什么区别 区别如下: 1.int数据类型是32位,double数据类型是64位: 2.int数据类型的默认值是0,double数据类型的默认值是0.0d: 3.整型变量 ...

  5. 【Int、Fix】Int、Fix 函数的区别

    Int.Fix 函数 返回数字的整数部分. Int(number) Fix(number) number 参数可以是任意有效的数值表达式.如果 number 参数包含 Null,则返回 Null. 说 ...

  6. VB中INT和FIX函数的区别

    Int.Fix 函数 返回数字的整数部分. Int(number) Fix(number) number 参数可以是任意有效的数值表达式.如果 number 参数包含 Null,则返回 Null. 说 ...

  7. oracle的int范围,oracle中int类型和number类型区别

    oracle中int类型和number类型区别 INT类型是NUMBER类型的子类型. 下面简要说明: (1)NUMBER(P,S) 该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节 ...

  8. 面试官:int和Integer有什么区别?为什么要有包装类?

    作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) 重要说明:本篇为博主<面试题精选-基础篇>系列中的一篇,查看 ...

  9. tinyint(1)和int(1)的区别

    问题:int(1) 和 tinyint(1) 有什么区别呢? 像这样的设计,反正我是不会写int(1)的. 查了下,mysql中设置了储存类型后,储存是定长的,也就是说,int(1) 和 int(4) ...

  10. int,float与double的区别

    整数类型和精度浮点类型 int是4字节,32比特. 它的4字节完全用于整型,就是只能显示1,2,3这样的数字,不能显示小数点后面的数字.数据范围为-2147483648~2147483647[-2^3 ...

最新文章

  1. 艾伟:C#对游戏手柄的编程开发-API篇(2)
  2. 某大学园区网规划(设想)
  3. 数据结构与算法-排序与查找(java描述)
  4. 洛谷2055 [ZJOI2009]假期的宿舍
  5. 第一个Hibernate项目
  6. oracle大于或等于,如何用SQL实现最接近某一个值且大于等于这个值的一条记录
  7. 21、OSPF配置实验之特殊区域totally stub
  8. T-SQL语句实现数据库备份与还原功能
  9. html 字符转换 ascii,HTML ASCII
  10. python tox
  11. java_猜拳小游戏——流之奥义
  12. 板材品牌排名之饰面板-也叫贴面板
  13. BM开发出量子计算机,迄今错误率最低量子比特面世,有望推进量子计算机研发工作...
  14. 利用Python实现员工信息管理系统 64行超简
  15. XML介绍之XML的语法与元素
  16. java dozer 官网,Dozer-JavaBean映射工具
  17. python基础函数大全pdf,python函数大全及使用
  18. 讲真的,关于 Java 正则表达式,你具体知多少?
  19. 数据库连接池——DBCP连接池o
  20. 企业会议效果差怎么办?

热门文章

  1. php表单邮件发送,php操作表单发送邮件的方法
  2. <转载> TensorRT 实战教程
  3. OC/Swift 技术 股票详情
  4. 使用 Multiprocessing.Pool.map_async 报错 attribute lookup <lambda> on __main__ failed 的解决
  5. html中超链接使用_HTML超链接代码
  6. CQR_Encode 二维码研究心得
  7. 分布式系统基础架构hadoop搭建
  8. 基于jsp java html的水产品养殖配送系统
  9. realloc函_realloc函数使用规则
  10. 便利贴--46{HbuildX连接夜神模拟器}