頭文件<float.h>和<limits.h>
<float.h> 頭文件僅定義了一些與浮點數特性有關的宏。
在不同的平臺和不同的編譯器下,浮點數的特性可能會有所不同,用戶可以讀取該頭文件中的宏來了解當前環境下的浮點數特性。
<float.h> 頭文件對 float、double 和 long double三種類型的浮點數進行了說明,並且宏的命名也非常規範,以FLT_開頭的表示宏用來描述 float 類型的特性,以DBL_開頭的表示宏用來描述 double 類型的特性,以LDBL_開頭的表示宏用來描述 long double 類型的特性。
FLT_MAX 、DBL_MAX 、LDBL_MAX浮點數的最大值。FLT_MIN、DBL_MIN 、LDBL_MIN浮點數的最小值。
<limits.h> 頭文件僅定義了一些與整數類型有關的宏。
在不同的平臺、不同的編譯器下,整型數據的取值範圍可能會有所不同,用戶可以讀取該頭文件中的宏來了解當前環境下整型數據的取值範圍。
在C語言中,字符型 char、短整型 short、整型 int、長整型 long、超長整型 long long、有符號類型 signed 以及無符號類型 unsigned 都是整數類型。
INT_MINint類型所能表示的最小值;
INT_MAXint類型所能表示的最大值。
整數上溢、浮點數上溢和浮點數下溢的情況
在 32 位平臺下,有符號整型 int 範圍為[-231, 231-1],即[-2147483648, 2147483647] ,整型數據最大值 2147483647 加 1,會產生越界,結果為-2147483648。
要造成 float 越界,如只加一個較小的數據,由於其精確度限制,不會產生越界效果,因此要造成溢出應使用乘法和除法。
浮點型上溢表現為輸出 inf 或 infinity [ɪnˈfɪnəti],下溢表現為精度的損失。
fixed-point notation定點表示法
exponential notation [ˌekspəˈnenʃl nəʊˈteɪʃn]指數計數制(法)
浮點數據的小數形式、指數形式、p計數法(即十六進位記數法)的轉換說明符分別使用%f、%e、%a表示。
p計數法就是把一個浮點數以一個十六進位的數如0x1.C0000p+1類似的樣子輸出一個浮點數。%a和%A 有什麼區別麼? 相同點:都是以16進位的指數形式顯示浮點數;不同點:%a以小寫顯示abcdef,%A以大寫字母顯示ABCDEF。