2024-10-14 08:12:30
在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。