整型資料
沒有小數位或指數的資料類型被稱為整型資料,根據使用方法的分類,整型資料可分為整型常量和整型變數。根據定義或顯示的數制分類,可分為十進位、八進位和十六進位。
整型常量
整型常量是在運算中不可改變的整數資料型別,可使用十進位、八進位和十六進位描述一個整型常量。十進位整型常量的表述形式是:
[正負符號] 十進位整數值
其中十進位整數值可以是從 0 到 9 的一個或多個十進位數位,第 1 位可以是正負符號,但不能是0。八進位整型常量的表述形式是:
[正負符號]x八進位整數值
八進位整數值可以是從 0 到 7 的一個或多個八位元位,正負符號後的第 1 位必須是0。十六進位整型常量的表述形式是:
[正負符號]0x 十六進位整數值 // 使用小寫x
[正負符號]0X 十六進位整數值 // 使用大寫X
正負符號後第 1 位必須是 0,第2位必須是小寫x或大寫X。十六進位的 10~15分別用字母 A~F 表示。(例如十進位 162,用八進位表示為0242,用十進位表示為 0xA2)。
正值整數常量可省略正負符號,負值整型常量必須在數值前加上負號“-”說明。整型常量的資料類型取決於數值本身,如果常量運算式沒有使用負號,編譯器會認為該常量為無符號數。編譯器會根據整型常量的長度自動分配儲存空間,甚至可以認為常量的資料長度是沒有上限的。但並不代表任意大的資料都能被C語言處理。
八進位和十六進位整型常量在儲存方式上與十進位數並無區別,只是定義時使用了不同的表述方法。八進位和十六進位整型常量的儲存空間長度也有數值來決定,並且可以存在負值。
整型變數
為變數命名的過程稱為“聲明”,C語言規定,變數使用前必須聲明。整型變數用 int修飾符聲明,參見下列原始碼。
main()
{
int a, c; // 聲明整型變數
unsigned int b; // 聲明無符號整型變數
a = 15; // 為變數 a 賦值
b = a; // 為變數 b 賦值,b 的值來至 a
c = a + b; // 為變數 c 賦值,c 的值來至 a 與 b 的和
printf("c = %d\n", c); // 輸出提示字串和 c 的值
}
通過上例可以看到,不同類型的整型資料也能進行算術運算。
浮點型資料
浮點型資料又稱實型資料,是一個以十進位表示的符號實數。符號實數的值包括整數部分、尾數部分和指數部分。
浮點型常量
一些較大的數值,或者有小數位、指數位的數值都需要用浮點型常量表示。浮點型常量的形式是:
[正負符號] [數值] .[數值] [E | e [正負符號] 數值]
其中,“數值”是一位或多位十進位數字,E 或 e 是指數符號。小數點之前是整數部分,小數點之後是尾數部分,如果小數點後沒有數值,尾數部分可以省略。指數符號後的正負符號修飾指數,如果是正數,可省略正負符號。如果沒有指數,指數符號及其後的內容可省略。例如,浮點型常量 2.734E3 與 數學運算式 2.734 x 10的3次方意義相同。在浮點型常量中不得出現任何空白符號。在不加說明的情況下,實型常量為正值。如果表示負值,需要在常量前使用負號。
注意:字母 E 或 e 之前必須有數字,且 E 或 e 後面指數必須為整數,如 “e6”、“1.414e6.1”、“.e7”、“e”等都是不合法的指數形式。
浮點型變數
浮點型變數為 單精確度(float型)和雙精確度(double型)。對每一個浮點型變數都應在使用前加以定義。如下例所示:
float a; // 聲明單精確度浮點型變數
double b; // 聲明雙精確度浮點型變數
如果浮點型常量是雙精確度浮點型,當把該常量賦給一個單精確度浮點型變數時,系統會截取相應的有效位元。如下例所示:
float a; // 聲明單精確度浮點型變數
a = 1.23456789; // 為單精確度浮點型變數賦值
由於 float 型變數只能接收 7 位有效數字,因此最後兩位小數不起作用。如果 a 改為 double 型,則能全部接收上述 9 位元字並儲存在變數 a 中。