# 【知識精講】重新認識基本運算
## Part1
數學中有四個基本運算,它們是加、減、乘、除。是不是覺得小渡一下把你帶回到了小學的時代?在計算機的高級語言程序設計中,基礎的數學運算肯定是少不了的。
在 C++ 語言中,也有我們很熟悉的四則運算的運算符:
* 加法,使用加號`+`作為運算符,例如`a + b`
* 減法,使用減號`-`作為運算符,例如`a - b`
* 乘法,區別于我們平時手寫的乘號“×”,C++ 語言中我們使用`*`作為乘號,例如`a * b`
* 除法,區別于我們平時寫的除號“÷”和寫分式時的“—”,在 C++ 語言中我們使用`/`作為除號,例如`a / b`
## Part2
除了我們熟悉的加、減、乘、除,在 C++ 語言中,我們還可以使用一種運算——**求余**運算(也叫**模運算**)。顧名思義,求余運算,就是求兩個整數相除以后的余數。
如果我們求 212121 除以 444 的余數,那么我們會得到 111 。
在 C++ 語言中,我們用`%`作為求余運算的運算符,可以寫成例如`a % b`的形式。對于上面的例子,我們可以直接寫 `21 % 4`——這個運算式的值將會是 1。
## Part3
不知道你發現了沒有,我們在這里提到的所有的算術運算符,無論是加、減、乘、除還是求余,在運算符的前后各有一個被應用于運算過程的值,我們稱這種運算符為**雙目運算符**。
我們之前學習賦值的時候學到的`=`賦值運算符,也是一個雙目運算符。
我們可以將賦值運算符和這里講到的算術運算符結合,得到一些有意思的表達:
* `a = 1 + b;` 表示數值 111 加上變量 `b` 內的值的結果被賦值給 `a`
* `a = b * c;` 表示將變量 `b` 內的值乘以變量 `c` 內的值所得的結果賦值給 `a`
* `a = a + 1;` 表示將數值 111 加上變量 `a` 內的值的結果賦值給 `a`
## Part4
通過變量、常量數值和運算符構成的結果是可以連寫的,我們寫`a = 1 + 2 + 3`這樣的形式,可以被理解成 1+21 + 21+2 的運算結果通過加法運算符再次和 333 進行了加法,得到的值被賦值給了 `a`。但是,如果我們寫`b = 1 + 2 * 3`,則表示 111 通過加法運算符和 2?32 \* 32?3 的運算結果進行了加法,得到的值被賦值給了 `b`。
為什么會有這樣的差異呢?學過數學的你一定不會覺得很奇怪,如數學中的運算一樣,C++ 語言的基本運算符也是有優先級的,乘法、除法的優先級比加法、減法要更高。
如果我們想強制改變這種默認優先級下的運算順序,C++ 語言中也設計了一種和數學中教的一模一樣的工具——小括號。如果你希望 1+21 + 21+2 的運算結果通過乘法運算符和 333 進行乘法,并把結果賦值給 `b`,那么我們需要把運算過程寫成`b = (1 + 2) * 3`。
- 教材介紹
- 《編程初學入門常識》
- 什么是程序語言
- 【知識精講】編程與編程語言
- 【選擇測試】編程語言分類
- 【知識精講】高級語言分類
- 【選擇測試】編譯與解釋
- 【選擇測試】程序員笑話-Java
- 熟悉鍵盤上用于編程的鍵位
- 【知識精講】認識你的鍵盤
- 【知識精講】中文和英文字符
- 【匹配測試】識別中英文符號
- 【選擇測試】中英文符號的影響
- 【伴隨編程】不要使用中文引號
- 【伴隨編程】不要使用中文分號
- 【伴隨編程】正確地輸入符號
- 【選擇測試】找出程序中的錯誤
- 初始工程師思維
- 【知識精講】二進制思想
- 【選擇測試】程序員笑話-湊整
- 【知識精講】閉合的邏輯
- 【選擇測試】程序員笑話-條件
- 程序員職業與生活
- 【知識精講】程序員的發展方向
- 【知識精講】程序員的裝備
- 【知識精講】程序員的健康
- 【選擇測試】做一名健康的程序員
- 《C++程序設計》
- 前言
- 【知識精講】編程與計算機科學
- 【知識精講】編程與軟件工程
- 【知識精講】如何學習編程
- 你好C++
- 【知識精講】你好,C++
- 【知識精講】C++程序是如何開發的
- 【知識精講】成為一名Power User
- 【伴隨編程】讓我們一起說你好
- 【知識精講】你的第一個C++語言程序
- 【伴隨命令】編譯、運行你的程序
- 【伴隨編程】將變量流式輸出
- 【選擇測試】變量的作用域
- 【知識精講】變量與數據類型
- 【匹配測試】C++語言的入門概念
- 【知識精講】在程序中學會換行
- 【選擇測試】正確地換行
- 簡單數學運算
- 【知識精講】重新認識基本運算
- 【選擇測試】運算符的理解
- 【伴隨編程】做一下簡單的運算
- 【伴隨編程】a 的 n 次方
- 【知識精講】數學函數
- 【伴隨編程】讓C++語言變成計算器
- 【伴隨編程】計算球的體積
- 【匹配測試】數學世界知多少
- 【知識精講】在程序中添加注釋
- 【選擇測試】正確地寫注釋
- 從伴隨輸入到變量地址
- 【伴隨編程】 一個數字復讀機器
- 【選擇測試】理解標準輸入輸出
- 【伴隨編程】一個加法計算器
- 【程序設計】A+B+C問題
- 【伴隨編程】簡單的I/O格式控制
- 【知識精講】地址與取地址符
- 【伴隨編程】看看我們的地址
- 習題一:面積與周長
- 【程序設計】矩形面積與周長
- 【程序設計】三角形面積與周長
- 【程序設計】圓形面積與周長
- 程序中的是與非
- 【知識精講】是非的表示與關系運算
- 【伴隨編程】驗一驗關系運算式
- 【選擇測試】關系運算式求值
- 【知識精講】如果的意義
- 【伴隨編程】分段函數求值
- 【知識精講】如果之后的如果
- 【伴隨編程】五則運算器
- 【選擇測試】分支的嵌套
- 【伴隨編程】問號表達式
- 【知識精講】是非之間的邏輯組合
- 【伴隨編程】判斷閏年
- 【程序設計】日期合法性
- 【知識精講】多路順序結構
- 【知識精講】在程序中學會縮進
- 【選擇測試】正確的縮進
- C++程序中的苦力
- 【知識精講】使用循環結構
- 【選擇測試】對比兩種循環
- 【伴隨編程】使用while循環
- 【填空測試】理解循環結構
- 【知識精講】自減和自增運算符
- 【伴隨編程】使用自增運算符
- 【知識精講】for循環
- 【選擇測試】for循環的使用
- 【程序設計】一大波好玩兒的程序
- 《代碼能力快速提升》
- 《基礎數據結構》
- 《搜索入門》
- 《動態規劃基礎》
- 《數論和基礎數學》
- 《圖和數基礎》