###### tag: `C++`
# 資料型態
資料型態用於定義變數、矩陣、副程式等
## 常見資料型態
* 數字:int(整數)、long long(長整數)
* 小數:float(浮點數)、double(雙浮點)
* 文字:string(字串)、char(字元)
* 其他:bool(布林值)
---
## 適用範圍
* 整數:
* int -2,147,483,648 ~ 2,147,483,647
* lone long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
* 小數:
* float 具7位數
* double 具15位數
* 文字:
* string 字串
* char 字元 詳細請見[ascii](https://zh.wikipedia.org/zh-tw/ASCII)
* 其他:
* bool 真或假
* 真: true(1)
* 假: false(0)
---
## 整數
```cpp=
#include <iostream>
using namespace std;
int main() {
int a = 5 ;
int b = 6 ;
cout << a + b << endl ; // 11
long long c = 35897928153857891; // 因為 35897928153857891 超過 int 的範圍 , 所以這裡要用long long 來定義
cout << 100000000000000000 - c << endl; // 64102071846142109
}
```
---
## 小數
```cpp=
#include <iostream>
using namespace std;
int main() {
float a = 5.0 ;
float b = 3.0 ;
cout << a / b << endl ; // 1.66667
}
```
---
## 文字
```cpp=
#include <iostream>
using namespace std;
int main() {
string a = "ABC" ;
string b = "DEF" ;
cout << a + b << endl ; // ABCDEF
cout << a << b << endl ; // ABCDEF
cout << "ABC" << "DEF" << endl; // ABCDEF
char c = 'A' ;
char d = 68 ;
cout << c << endl ; // A
cout << d << endl ; // 68
cout << c + d << endl ; // 133
// 因為 A 在 ascii 中的編碼是 65
// 所以 c + d = A + 68 = 65 + 68 = 133
}
```
:::danger
* 字串型別的文字必須使用雙引號將其文字包住
<br>ex. "HI"
* 字元型別的文字必須使用單引號將其文字包住
<br>ex. 'G'
:::
---
## 其他
```cpp=
#include <iostream>
using namespace std;
int main() {
bool a = true ;
bool b = false ;
bool c = 0 ;
bool d = 1 ;
cout << a + b << endl ; // 1
cout << c + d << endl ; // 1
cout << (a + b) * (c + d) << endl ; // 1
cout << (a + b) / (c + d) << endl ; // 1
}
```
:::info
* true 切換成數值就是 1 , 所以 true = 1
* false 切換成數值就是 0 , 所以 false = 0
:::
---