#include <stdio.h>
#include <limits.h>
int main(void){
printf("Type Size Min Max\n----------------------------------------------------------------------\n");
printf("%-20s%-10d%-20ld%-20ld\n", "long", sizeof(long), LONG_MIN, LONG_MAX);
printf("%-20s%-10d%-20lu%-20lu\n", "unsigned long", sizeof(long), 0, ULONG_MAX);
return 0;
}
哪里加倍?即变量LONG_MIN在文件limits.h中。在哪种类型中?
int i, min, max;
for (i = 1.0; i > 0; ++i)
{
max = i;
};
min = i;
printf ("int: min: %d max: %d \n", min, max);
浮动和双重怎么做? min怎么计算这个变量? 对不起坏英语
答案 0 :(得分:15)
浮点类型的限制在float.h not limits.h
中定义答案 1 :(得分:8)
答案 2 :(得分:0)
我认为这就是你想要的:
浮动:%f
long float(double):%lf
您可能还希望以指数表示法看到它:%E
对于float和double的min / max,这里是你想要的
这是来自float.h的片段:
#define DBL_MAX 1.7976931348623158e+308 /* max value */
#define DBL_MIN 2.2250738585072014e-308 /* min positive value */
#define FLT_MAX 3.402823466e+38F /* max value */
#define FLT_MIN 1.175494351e-38F /* min positive value */
答案 3 :(得分:-2)
要计算给定数据类型的限制,您只需计算(2^(sizeof(type) * 8)) - 1
,即(2^number_of_bits) - 1
。
然后,如果您认为此类型是有符号的,则最小值和最大值为-2^(number_of_bits - 1)
和(2^(number_of_bits - 1)) - 1
,或者如果它们是无符号,则MIN将为0且MAX (2^number_of_bits) - 1
。
这仅适用于整数类型,因此不适用于浮点数和双精度数,因此仅适用于二进制补码整数表示。