---
# System prepended metadata

title: 運算子Operator

---

# 運算子Operator
- 資料（變數）可以拿來處理一下
    - 如數字型變數可以加、減、乘、除、根號等
    - 文字型變數可以排序、更改、尋找
- 在程式中我們用運算子來處理資料
    - 運算子：程式用來操作資料（量）的符號
- 運算子依其操作方式可分成
    - 算術運算子
    - 比較運算子
    - 邏輯運算子
- 3+5，3跟5運算元
## 算術運算子
|運算子|功能|
| -------- | -------- |
|`+`|加|
|`-`|減|
|`*`|乘|
|`/`|除|
|`++`|自己加一|
|`--`|自己減一|
|`%`|求餘數|

- `+=`代加運算子：
https://docs.microsoft.com/zh-tw/dotnet/csharp/language-reference/operators/addition-operator
## 比較運算子
|運算子|功能|
|----|----|
|`==`|等於|
|`!=`|不等於|
|`>`|大於|
|`>=`|大於等於|
|`<`|小於|
|`<=`|小於等於|
## 邏輯運算子
|運算子|功能|
|---|---|
|`&&`|AND|
|`!`|NOT|
|兩條直線|OR|

備註：HackMD在表格中打不出`||`

## 運算子使用例
如果這樣設計
```c=
printf("%d", a + b);
```
會出現這兩個問題：
 - 乘法輸入0會當掉
 - 除不出小數
     - 電腦硬體特性造成
         - 兩個相同型態的數互相運算，結果也是同型態
         - 不同型態運算，結果必須與佔記憶體空間大的型態一致
             - 同樣是4byte，float比int大
         - 程式設計師可以在程式中暴力更改變數所佔用的記憶體空間大小
             - [型態轉換](https://iter01.com/517380.html)
             - `(float)123`
 - 解法
     - 改成宣告`double`型態
     - `%.3lf`指定三位
         - `%.0lf`可以去除小數
- 來看看下列這個程式碼
```C=
printf("x + y = %lf", x + y);
```