C语言int/double数据类型的范围
#include <stdio.h>
#include <limits.h>
# include <float.h>
int main()
{
printf("int类型数据所占空间=%d\n", sizeof(int));
// int类型数据范围
// 方法1
printf("int最小值=%d, int最大值=%d\n", INT_MIN, INT_MAX); // 使用limits.h里的宏
//方法2
signed int max = (1 << (sizeof(int) * 8 - 1)) - 1; // 自己计算
signed int min = -(1 << (sizeof(int) * 8 - 1));
printf("int最小值=%d, int最大值=%d\n", min, max);
// 方法3
printf("int最小值=%d, int最大值=%d\n", max+1, min-1);
// double数据类型精度及范围--数据很大
printf("float类型数据所占空间:%d\n", sizeof(float));
printf("double类型数据所占空间:%d\n", sizeof(double));
printf("double精度:%lf\n"); //有警告,不过可以运行
printf("double最小值=%lf\n, double最大值=%lf\n", -DBL_MAX, DBL_MAX); //使用float.h的宏
return 0;
}
运行结果:
int类型数据所占空间=4
int最小值=-2147483648, int最大值=2147483647
int最小值=-2147483648, int最大值=2147483647
int最小值=-2147483648, int最大值=2147483647
float类型数据所占空间:4
double类型数据所占空间:8
double精度:0.000000
double最小值=-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000,
double最大值=179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000