2 回答
TA贡献1757条经验 获得超8个赞
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 回答
- 0 关注
- 1053 浏览
添加回答
举报