1. 程式人生 > >C語言學習(第三天)

C語言學習(第三天)

id3 alt types.h 32位 精度 全部 tty 技術 實現

1、整數類型擴展類型

  擴展類型是提升計算機在處理數據的速度和空間上的能力,不同類型在不同系統上的功能也不一樣。

  可移植類型頭文件:<stdint.h> ,C語言為現有類型創建更多的類型名,新的類型名都定義在<stdint.h>中;  

    移植:如 int32_t(精確寬度整數類型) 類型表示32位有符號整數類型,不管系統是多少位,int32_t類型定義的變量都是32位;

    空間:如 int_least8_t (最小寬度類型)類型表示一定是至少有8位有符號整數值(指定寬度)的最小整數類型,如果系統最小是16位,仍可定義,但實現位16位;

    速度:如 int_fast8_t (最快最小寬度類型)類型定義為系統中對8位有符號值而言運算速度最快的整數類型;

    更大數據類型:如 intmax (最大有符號整數類型)類型可存儲任何有效的有符號整數值,類似的 unitmax 類型表示最大的無符號整數類型,這些類可能比 long long 和 unsigned long 更大;

  顯示特定類型的字符串宏頭文件: <inttypes.h>,如 PRId32 字符串宏代表打印32位有符號值的合適轉換說明;

技術分享圖片

2、浮點型數據類型

技術分享圖片

  float 類型:至少能精確6位有效數字,取值範圍至少是10-37--10+37,通常系統存儲一個 float 類型占用32位,其中8位用於表示指數的值和符號,剩余部分表示非指數部分;

  double 類型:至少能精確13位有效數字,取值範圍至少是10-37

-- ~,通常系統存儲一個 double 類型占用64位,一些系統將多的32位全部用來表示非指數部分,增加有效數位數,提高精度,一些系統則把一部分分配給指數部分,以容納更大的數;

  long double 類型:滿足比 double 更高的精度要求,不過C語言只保證 long double 至少與 double 的精度相同;

  浮點常量表示

    一般:-1.56E+12、2.87e-3

    無小數點:2E5

    無指數:15.89

    無小數部分:3.E12

    無整數部分:.45E-3

  系統默認浮點常量為 double 類型,加 f 或 F 後綴表示 float 類型,加 l 或 L 後綴表示 long double 類型;

  十六進制浮點型格式:即在十六進制數前加 0x 或 0X,用 p 或 P 分別代替 e 或 E,用2的冪代替10的冪,0xa.1fp10,a 表示十進制的10,1f 表示1/16 + 15/256,f 十進制是15,p10 是 210 或 十進制的1024,表示的值為(10 + 1/16 + 15/256)x 1024 = 10364.0;

  打印浮點值

    %f 打印十進制記數法的 float 和 double 類型;

    %e 打印指數記數法的浮點數;

    如果系統支持十六進制,%a 和 % A 代替 %e打印;

    打印 long double 使用 %Lf、%Le、%La;

  浮點值的上溢和下溢

技術分享圖片

3、復數和虛數類型

  復數類型:float _Complex、double _Complex、long double _Complex 三種復數類型,每個類型值應該包括兩部分,實數和虛數部;

  虛數類型:float _Imaginary、double _Imaginary、long double _Imaginary三種虛數類型;

  如果包含頭文件 <complex.h> 可以用 complex 代替_Complex,imaginary 代替 _Imaginary,用 I(i 大寫)代替 -1的平方根;

 

  

  

  

  

C語言學習(第三天)