2011-01-24 115 views
3
#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); 

如何做浮動和雙? 如何計算這個變量? 遺憾的英語不好

+1

你會在http://en.wikipedia.org/wiki/Printf#Format_placeholders找到有效的printf格式代碼 – 2011-01-24 20:15:01

+2

我想他在問哪裏可以找到`DBL_MIN`和`DBL_MAX`。實際上是一個很好的問題。 – Thomas 2011-01-24 20:16:46

+1

即使有多個編輯 - ** thx朱麗葉和所有其他** - 這篇文章不清楚! – TridenT 2011-01-24 20:24:47

回答

8

在Linux中,我有float.h時具有FLT_MAX和DBL_MAX最大浮點和雙精度值分別定義。我不知道怎麼「標準」,也就是說,雖然...

0

我想這是你想要什麼:

浮動:%F

長浮動(雙):%LF

你也可以看到它在指數符號:%E

最小/最大浮法和雙這裏是你想要的

下面是從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 */ 
-1

爲了計算給定數據類型的限制,您必須簡單計算(2^(sizeof(type) * 8)) - 1,即(2^number_of_bits) - 1

然後,如果您認爲此類型將簽署的最大值和最小值是-2^(number_of_bits - 1)(2^(number_of_bits - 1)) - 1或者如果他們是無符號的最小值爲0和MAX (2^number_of_bits) - 1

這僅適用於補碼整數表示只適用於整數類型,所以不適合花車和雙打,然後。