C語言社團札記4─基本資料型態
介紹C語言的基本資料型態。
基本資料型態
整數
跟平常數學一樣,就是整數=.=(汗),無法儲存小數,如果將小數存入,將會無條件捨去小數點。依據可儲存的數值範圍由小而大又分為 short、int、long long。
浮點數
數學的小數,依據可儲存的數值範圍由小而大又分為 float、double、long double。
字元
用來儲存字元(文字),其編碼主要依據ASCII,例如裡面儲存值為65,對應ASCII的編碼就代表’A’。此型態長度為1個byte(位元組)。
推估整數儲存範圍
首先我們知道電腦記錄資料最小的單位是位元(bit),然後8個位元又組成1個位元組(byte)。而我們知道int是由4位元組組成的,也就是有32個最小單位(位元),一個最小單位有兩種狀態,所以int總共有2^32個組合,其中一種狀態用來表示0,所以可以表示數值範圍0 ~ 2^32-1。然而這個範圍是純正整數,如果我們希望範圍能包括負數,那麼我們就必須花一個位元來記錄正負號,所以範圍就變成-2^31 ~ 2^31-1。其他整數型態也是相同的推估方法。至於小數則是將數字用科學記號表示,然後分為兩項來記錄。例如float佔四個位元組,前三個位元組是用來儲存假數,後一個位元組儲存指數,例如3.14*10^8, 3.14儲存在前三位元組,而8儲存於後一位元組。
基本的修飾字
修飾字就像是形容詞,是放在型態前面,以下介紹常見的4種。
short
short修飾字是為了節省記憶體空間而設計的,使用後雖然可儲存範圍變小,但是佔用記憶體也會降低。可用來修飾int,也就會變成short int(也可以直接縮寫成short)。
long
long修飾字是為了擴充儲存範圍,使其更廣泛或更精準。可修飾int和double(long int可以縮寫成long)。
unsigned
unsighed是用來強迫資料型態為正數,也就是只能記錄正數,雖然不能記錄負數,但也會使得正數範圍擴充2倍。
signed
sighed是用來允許資料型態可以記錄正負數。然而所有的變數除了char以外,預設是可以記錄正負數,所以對於除了char的資料型態以外並無影響。