#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;
}
字符串double
在哪里?即变量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);
型
浮点数和双精度浮点数如何计算?如何计算此变量的最小值?抱歉英语说得不好
4条答案
按热度按时间xkftehaa1#
浮点类型的限制在float.h not limits. h中定义
ukdjmx9f2#
在linux上,我有float. h,它分别为最大float和double值定义了FLT_MAX和DBL_MAX。我不知道这有多“标准”。
8wtpewkr3#
我想这就是你想要的
浮动:%f
长浮点数(双精度):%lf
您可能还希望以指数表示法查看它:%E
对于min/max,对于float和double,这里是你想要的
下面是float.h的一个片段:
字符串
vxqlmq5t4#
要计算给定数据类型的限制,您必须简单地计算
(2^(sizeof(type) * 8)) - 1
,即(2^number_of_bits) - 1
。然后,如果你认为这个类型是有符号的,最小值和最大值是
-2^(number_of_bits - 1)
和(2^(number_of_bits - 1)) - 1
,或者如果它们是无符号的,那么最小值将是0,最大值是(2^number_of_bits) - 1
。这仅适用于整数类型,因此不适用于浮点数和双精度数,并且仅适用于二进制补码整数表示。