在c++中定义时int和double有何区别

谢谢了

int 和 double 都是基本数据类型, int 是整形, double 是浮点型。

1.int 型变量占用的存储空间和机器字一样大,即 32位系统中是 4个字节; 64位系统中是 8个字节;

而 double 型变量 一般占用8字节,double 型变量占用的存储空间不会小于 int 型变量。

2.double 型表示的值范围要比 int 表示的值范围大,且从 double 值转换到 int 值,会进行四舍五入,从而有精度损失。

扩展资料

一整形

1.整形有char、short、int、long、long long,这5个也默认为signed XX ;

规则:short至少16位;int至少和short一样;long至少32位,且至少和int一样长;long long至少64位,且至少和long一样长。

其中,后面4个都有无符号变体。unsigned short、unsigned int、unsigned long、unsigned long long.

注意,unsigned本身是unsigned int的缩写。

可以看到,在32位和64位计算机上,对于整形唯一不同的就是int和指针的大小,其中32位计算机上int占2字节,64位上占4字节。指针大小和int大小相同。

2.wchar_t

char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。

wchar_t数据类型一般为16位或32位.

总之,wchar_t所能表示的字符数远超char型。

标准C++中的wprintf()函数以及iostream类库中的类和对象能提供wchar_t宽字符类型的相关操作。

3.++11新增类型:char16_t和char32_t

char16_t:16位无符号->前缀u表示

char32_t:32位无符号->前缀U表示

二、浮点型

浮点有3个,float、double、long double

规则:float至少4字节;double至少6字节,且不少于float;long double至少和double一样多。

通常float32位,double64位,long double80、96或128位。我在VS2013上测到long double位64位。

参考资料

百度百科-C++

百度百科-数据类型

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-15

1、类型不同

int 和 double 虽然都是基本数据类型,但 int 是整形, double 是浮点型。

2、在计算中的存储方式不同

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

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

扩展资料:

C\C++中int、double等数据类型范围的理解

实例代码:

short sia = -32760;

short sib = (-32760 + 32768) % 65536 - 32768;

printf("not overflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

sia = -32769;

sib = (-32769 + 32768) % 65536 - 32768;

printf("\noverflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

sia = 32768;

sib = (32768 + 32768) % 65536 - 32768;

printf("\noverflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

运行结果: 

说明: 

1、在赋值操作时,如sia = -32769,-32769是先作为一个常量值存放在内存中,这个数值是没有越界的概念的,就是二进制值,只是在赋值操作时才进行了对应的数据转换; 

2、从运行结果可见,该处理机制对数据溢出和不溢出得到的结果都是适用的; 

3、联想数据闭环循环,如程序中32768,超过short型上限,其溢出一个数,作为一个数据闭环,则直接跳转到了-32768,也就是short型下限值。

本回答被网友采纳
第2个回答  2018-12-12

在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。

本回答被网友采纳
第3个回答  推荐于2017-09-08
int 和 double 都是基本数据类型, int 是整形, double 是浮点型。

一般来说 , int 型变量占用的存储空间和机器字一样大,即 32位系统中是 4个字节; 64位系统中是 8个字节; 而 double 型变量 一般占用8字节,double 型变量占用的存储空间不会小于 int 型变量。

double 型表示的值范围要比 int 表示的值范围大,且从 double 值转换到 int 值,会进行四舍五入,从而有精度损失。本回答被提问者采纳
第4个回答  2011-08-05
int代表只能是整数,double是双精度浮点数u,也就是小数
相似回答