# 【知识精讲】重新认识基本运算
## 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循环的使用
- 【程序设计】一大波好玩儿的程序
- 《代码能力快速提升》
- 《基础数据结构》
- 《搜索入门》
- 《动态规划基础》
- 《数论和基础数学》
- 《图和数基础》