宣告bool (BOOLEAN值)
 
( 0 為 False , 1 為 True ,這種資料型態通常拿來做邏輯運算用)



宣告char(字元)


所占的記憶體是 1 byte = 8 bits
能夠承受的正數範圍:     0 ~   127
能夠承受的負數範圍:-128 ~  -1

一個號碼代表一個字元,請參照ASCII表


宣告short int (短整數)


能夠承受的正數範圍:
         0 ~ 32767
能夠承受的負數範圍:-32768 ~ -1

( 若宣告 unsigned short int ,則範圍是 0 ~ 65535 ,不含負數 )


宣告long int (長整數)


能夠承受的正數範圍:         0 ~ 2147483647
能夠承受的負數範圍:
2147483648 ~ -1

( 若宣告 unsigned long int ,則範圍是 0 ~ 4294967295 ,不含負數 )



宣告float (單精準度浮點數,可以顯示小數點)


真正使用情況:



可以接受的數值範圍:3.4x10-38 ~ 3.4x10+38

浮點數是利用 IEEE 754 的標準來做的

裡面裝的雖然也是0101010...,但是會轉換成科學記號的格式,

->  例如1010.1011 會轉換成 1.0101011 x (2^3)

前面第一個 bit 是用來表示正數或負數
黃色中間八個 bits 是用來記載科學記號的次方數,用Excess 127的形式
最後面24 bits 則是擺上原來的01010101資料
(詳細內容以後再寫一篇文章說明吧...)



宣告double(雙精準度浮點數,可以顯示小數點)


真正使用情況:


可以接受的數值範圍:
1.7x10-308 ~ 1.7x10+308

double的原理和float是一樣的,只不過使用的空間大小不同,各欄位大小不同,所以能夠使用的數值也不同


特別注意的是

你的資料型態記憶體占了幾byte,就代表他在記憶體中占了幾個位址

例如, 占 4 bytes 的 int ,就占了四個位址

了解你的資料占多少記憶體空間,對寫程式很有幫助

例如:陣列

若是你宣告了一個 資料型態為 int 的陣列 ( 4 bytes )

那麼,如果你的 array[0] 的開頭在 Address 100 ,那麼 array[1] 的開頭就在 Address 104

arrow
arrow
    全站熱搜

    finalfrank 發表在 痞客邦 留言(0) 人氣()