int和double有什么区别?

如题所述

在c++中,int和double有以下几个区别:

1、类型区别:

int是定义的整型数据,如int a 则a的值只能是整型,比如a=3。

double双精度浮点数,就是有小数点的数。

2、在计算中的存储方式:

int在32位计算机中占4个字节,这4个字节的在内存中存放的顺序为低字节存在低地址,高字节存在高地址。

double是64位的,在存储方式上都是遵从IEEE的规范,其遵从的是 IEEE R64.53。

在内存中的存储主要分成三部分,分别是:

符号位(Sign):0代表正数,1代表负数

指数位(Exponent):用于存储科学计数法中的指数部分,并且采用移位存储方式

尾数位(Mantissa):用于存储尾数部分

3、表达范围:

int:在32/64位系统中都是32位,取值范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295。

double:有效数字为15-16,数值范围为-1.7*10(-308)~1.7*10(308);

扩展资料:

C++中,整型数据是用int来进行定义的,整型的范围就是指int类型所能表示的整数的范围。在32位或64位机器中,int占4个字节,即32位。

int能表示的最大正整数为:0111 1111 1111 1111 1111 1111 1111 1111  (最高位表示符号位,正数符号位为0)对应的10进制数为2^31-1=2147483647,对应的十六进制表示为:0x7FFFFFFF。

int能表示的最小负整数为:1000 0000 0000 0000 0000 0000 0000 0000  (最高位表示符号位,负数符号位为1),对应的十六进制表示为0x80000000,而C++规定该值为-2^31=-2147483648。

所以最终,int类型(整数类型)的范围为-2^31 ~ 2^31-1,即-2147483648~2147483647,十六进制表示:0x80000000~0x7FFFFFFF。

double 的数据类型取值范围如下:

1、负值取值范围为 -1.79769313486231570E+308 到 -4.94065645841246544E-324。

2、正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。

温馨提示:答案为网友推荐,仅供参考
相似回答