先附上一个比较直观的表,长度表示字节:

byte: 字节  bit: 位

1. 短整型short:

所占内存大小:2byte=16bit;

所能表示范围:-32768~32767;(即-2^15~2^15-1)

2. 整型int:

所占内存大小:4byte=32bit;

所能表示范围:-2147483648~2147483647;(即-2^31~2^31-1)

unsigned:

所占内存大小:4byte=32bit;

所能表示范围:0~4294967295;(即0~2^32-1)

3. 长整型long:

所占内存大小:4byte=32bit;

所能表示范围:-2147483648~2147483647;(即-2^31~2^31-1)

unsigned long:

所占内存大小:4byte=32bit;

所能表示范围:0~4294967295;(即0~2^32-1)

4. long long:

所占内存大小:8byte=64bit;

所能表示范围:-9223372036854775808~9223372036854775807;(即-2^63~2^63-1)

unsigned long:

所占内存大小:8byte=64bit;

所能表示范围:0~1844674407370955161;(即0~2^64-1)

注:上面所说的全部是有符号型的,short,int,long, long long都默认为有符号型,其 中long和int都占4个字节的空间大小,他们有什么区别呢?

16位操作系统:long:4字节,int:2字节

32位操作系统:long:4字节,int:4字节

64位操作系统:long:8字节,int:4字节

int型在不同位数操作系统中所占用的字节数不同,如果想编写可移植性好的程序,早年流行16位和32位操作系统时最好用long修饰int型,现在流行32位和64位操作系统,用int就挺多了。当然这些都看你怎么去理解它了,毕竟它 们在不同操作系统所占字节数不固定,所以各自都有其适用之处,不可定论其好坏。

下面是对它 们的有科学依据的规定:

C语言规定:无论什么平台都要保证long型占用字节数不小于int型, int型不小于short型。

5. 字符型char:

所占内存大小:1byte=8bit;

所能表示范围:不确定!!!!;

unsigned char:

所占内存大小:1byte=8bit;

所能表示范围:0~255;(0~2^8-1)

singned char:

所占内存大小:1byte=8bit;

所能表示范围:-128~127;(-2^7~2^7-1)

char的默认类型不确定有可能是unsigned,也有可能是signed,主要更具编译器而定,可以自己测试一下编译器的默认char的符号类型。

6. 布尔类型bool:

所占内存大小:1byte=8bit;

所能表示的范围:只能取两个值false或者true;所以最小值就是:0, 最大值:1.

7. 单精度float:

所占内存大小:4byte=32bit;

所能表示的范围:(1.17549e-038)~(3.40282e+038);

注意:浮点数在 内存中都是按科学计数法来存储的,浮点数的精度是由尾数的位数决定的,大家记住即可不必深究;

8. 双精度double:

所占内存大小:8byte=64bit;

所能表示的范围:(2.22507e-308)~(1.79769e+308);

注:如何区分和使用这两个浮点类型呢,首先float和double的精度不同, float保留到小数点后面7位,而double保留到小数点后面16位,float能保证6 位有效数字,而double能保证15位有效数字,如果在不追求精度的的情况下当然用 float比较好,节省内存,如果需要很高的精度的情况下,最好还是用 double,平时我们定义浮点型变量一般都用double,毕竟精度高,一般精度 的损失是不能忽略的。

9. 字符串string:由于string在c++中属于类类型,不是基本数据类型,类不能计算其在内 存中所占大小,非要用sizeof(string)来算的话,一般算出来的结果是 sizeof(string)=4byte,如果string字符串内容很多,很明显就不是其 真实大小,string类里面有计算其字节大小的函数如:size(),length()。

c++中 int, long long, double 等数据类型的长度及范围整理相关推荐

  1. int, long long, double 等数据类型的长度及范围整理

    (1)整数类型:byte.short.int.long (2)小数类型:float.double (3)字符类型:char (4)布尔类型:boolean 先附上一个比较直观的表,长度表示字节: by ...

  2. mysql smallint 长度_mysql中int、bigint、smallint 和 tinyint长度范围和区别

    最近使用mySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

  3. MySQL番外篇:INT、CHAR以及VARCHAR数据类型中M的含义

    MySQL中INT.CHAR以及VARCHAR数据类型中M的含义 在MySQL数据库使用过程中,对于int(M).tinyint(M).char(M).varchar(M)等,这个M值到底代表什么意思 ...

  4. mysql smallint 长度_转:mysql中int、bigint、smallint 和 tinyint的区别与长度的含义

    bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. P.S. b ...

  5. c语言char float混合类型运算,求int long char double float 在混合运算中的自动转换规则 win 32位系统。...

    满意答案 yesyesq 推荐于 2018.05.11 采纳率:40%    等级:9 已帮助:1063人 在程序运行中,变量的数据类型是可以转换的,转换方式有两种. 一.自动转换:自动转换发生在不同 ...

  6. JAVA基础 第四篇:int型、double型中的几个极限值(最值)

    我们初学JAVA时,首先接触到的数值类型为:int型.double型,伴随着学习的深入,我们发现这两个数值"不够用",因此我们先后接触了float.Long.BigInteger. ...

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

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

  8. Java中int和short的取值范围_java中short、int、long、float、double取值范围

    1. 基本类型:int 二进制位数:32 包装类:java.lang.Integer 最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方) 最大值:Integer. ...

  9. java中int转换double类型_Java 程序将int类型变量转换为double

    Java 程序将int类型变量转换为double 在此程序中,我们将学习如何在Java中将整数(int)变量转换为double值. 要理解此示例,您应该了解以下Java编程主题: 示例1:使用类型转换 ...

最新文章

  1. LeetCode 421. Maximum XOR of Two Numbers in an Array--Python解法
  2. js 不同页面间传递值并取值
  3. apt-get erro
  4. java连接u盘_虚拟机VM6.0 LINUX redhat 挂接U盘,访问U盘
  5. IT职业教育行业报告
  6. MySql分页存储过程
  7. 微软的SQLHelper类(含完整中文注释)
  8. HDOJ--2066--一个人的旅行
  9. node-ffi 调用Golang动态库
  10. 十进制转36进制(10进制转任意进制的方法)
  11. golang ide 下载
  12. L7805CV-ASEMI三端稳压管L7805CV
  13. Conficker.AE病毒局域网扫描工具
  14. 编译原理的有限自动机
  15. 方正BPM开发平台(FIX ES2007)帮助手册+知识库
  16. mysql backup 使用_MySQLBackup 使用说明
  17. Chrome调试工具使用及waterfall含义详解
  18. 二项堆(Binomial Heap)
  19. linux/windows_vscode_配置mingw的C/C++环境(by official doc)/一些可能遇到的问题和对策)/vscode中文输出乱码问题
  20. lims 系统 服务器 强大,实验室信息管理系统(LIMS)详解

热门文章

  1. Java微服务:蛋糕是骗人的,但您不能忽略它
  2. 如何编写NetBeans插件
  3. Tomcat到Wildfly:配置数据库连接
  4. PrimeFaces Mobile入门
  5. 在Spring中使用Asciidoctor:使用Spring MVC渲染Asciidoc文档
  6. 获取可用密码算法的列表
  7. 休眠和UUID标识符
  8. 使用junit-drools进行JBoss Drools单元测试
  9. neo4j / cypher:悬挂查询参数
  10. Java Comparable接口的陷阱