---
# System prepended metadata

title: L7 - Basic Data type
tags: [C]

---

# L7 - Basic Data type
###### tags: `C`
## 一 . 整數
### (一) . 整數型態
1. unsign int : 只能是正數，用於低階硬體。
2. sign int : 可以是正負，用於一般運算。
3. long 、short : 比一般正整數空間長或短。

### (二) . 整數範圍
1. C沒有規定必須為多少，但有規定最小空間為多少，可以在<limit.h>中知道相關資訊。
2. 在16位元的機器 ： 
   - short : 16位元。
   - int : 16位元。
   - long : 32位元。
3. 在32位元的機器 ：
   - short : 16位元。
   - int : 32位元。
   - long : 32位元。
4. 在64位元的機器 ：
    - short : 16位元。
   - int : 32位元。
   - long : 64位元。

5. C99之後，long long int 開始使用：規定至少64bit。 

### (三) . 整數常數、指定儲存
- 整數常數
  1. 整數常數 ： 程式中非變數的整數。
  2.  8進位表示 ： 由0開頭，
  3.  16進位表示 ： 由0x開頭。
- 指定儲存
  1. L結尾 ： 表示long
  2. U結尾 ： 表示unsign。
  3. LL結尾  : 表示long long。
- long、short、long long 的conversion 不同 ： 
  1. short : 『%hd』。
  3. long : 『%l』。
  4. long long : 『%ll』。


### (四) . 整數溢位
1. sign 溢位 ： 不定，每一台電腦用的補數模型都不一樣，可能造成的結果都不一樣。
2. unsign 溢位 : 因為是硬體底層，所以溢位方法一定。

## 二 . Float
### (一) . 浮點數型態
1. float : 單精準浮點數。
2. double : 雙精準浮點數。
3. long double : 比雙精準浮點數。

### (二) . 浮點數的IEEE-754




