C语言 浮点类型的限制?

eyh26e7m  于 2023-08-03  发布在  其他
关注(0)|答案(4)|浏览(130)
#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);


浮点数和双精度浮点数如何计算?如何计算此变量的最小值?抱歉英语说得不好

xkftehaa

xkftehaa1#

浮点类型的限制在float.h not limits. h中定义

ukdjmx9f

ukdjmx9f2#

在linux上,我有float. h,它分别为最大float和double值定义了FLT_MAX和DBL_MAX。我不知道这有多“标准”。

8wtpewkr

8wtpewkr3#

我想这就是你想要的
浮动:%f
长浮点数(双精度):%lf
您可能还希望以指数表示法查看它:%E
对于min/max,对于float和double,这里是你想要的
下面是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 */

字符串

vxqlmq5t

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
这仅适用于整数类型,因此不适用于浮点数和双精度数,并且仅适用于二进制补码整数表示。

相关问题