通过试验的方法(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。
短整型(short int):分配2个字节。存储方式与基本整形相同,一个短整型的数据范围是:-32768-32767,即 -215 ~ (215 - 1);
长整型数据(long int):分配它4个字节,范围为 -231 ~ (231 - 1);
无符号长整型数据(unsigned long int):分配它4个字节,范围为 0 ~ 4294967295,即 0 ~ (232 - 1);
双长整型(long long int):在vc中系统给它分配8个字节,这种数据类型一般比较少用。
整数溢出:当达到最大值时,将会溢出到起始点;当达到最小值时,将会从最大点开始往变小方向溢出
#include<stdio.h> #include<math.h> int main(){ //int 类型在32位机器中通常为32位 int zhengshu1,zhengshu2; unsigned int zhengshu3; zhengshu1=2147483647; zhengshu2=-2147483647; zhengshu3=4294967295; //整数的上溢,直接从-2147483648开始 printf("%d\t%d\t%d\n",zhengshu1,zhengshu1+1,zhengshu1+2); //下溢也从-2147483648开始 printf("%d\t%d\t%d\n",zhengshu2,zhengshu2-1,zhengshu2-2); //无符号整数上溢从0开始 printf("%u\t\t%u\t\t%u\n",zhengshu3,zhengshu3+1,zhengshu3+2); return 0; }