从单片机基础到程序框架(全集 2019pdf版).pdf - 第78页

二进制:110 11 第 5 个数 十进制:18 十六进制:1 2 二进制:100 10 分析: 通过实验结 果,发现 在单片机上的 计算结果和 我们的分 析是一致的。 【17.4 如何在单片机上练习本章节 C 语言程序?】 直接复制前 面章节中第十 一节的模板程 序, 练习代码时只需 要更改 “ C 语言学习区 域” 的 代码就可 以了, 其它 部分的 代码 不要动 。编 译后, 把程 序下 载进带 串口的 51 学习 板,通 过电 …

100%1 / 836
//第 4 种:“加数 1”是保存变量本身,“加数 2”是常量。
d=d+18;
d=d+7;
//第 5 种:“加数 1”是保存变量本身,“加数 2”是变量。
e=e+x;
e=e+y;
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
View(b); //把第 2 个数 b 发送到电脑端的串口助手软件上观察。
View(c); //把第 3 个数 c 发送到电脑端的串口助手软件上观察。
View(d); //把第 4 个数 d 发送到电脑端的串口助手软件上观察。
View(e); //把第 5 个数 e 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
1 个数
十进制:18
十六进制:12
二进制:10010
2 个数
十进制:25
十六进制:19
二进制:11001
3 个数
十进制:16
十六进制:10
二进制:10000
4 个数
十进制:27
十六进制:1B
二进制:11011
5 个数
十进制:18
十六进制:12
二进制:10010
分析:
通过实验结果,发现在单片机上的计算结果和我们的分析是一致的。
【17.4 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改C 语言学习区域”代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口的 51 学习板,通过电脑端的串口助手软件就可以
察到不同的变量数值,详细方法请看第十一节内容。
第十八节:连加、自加、自加简写、自加 1。
【18.1 连加
上一节的加法例子中,右边的加数只有两个。实际上,C 语言规则没有限制加数的个数,它的通用格式
如下:
“保存变量”=“加数 1”+“加数 2”+...+“加数 N”;
当右边的加数个数超过两个的时候(这里暂时把平时所说的被加数也归类为加数这种情况就是“
加”,每个加数的属性没有限定,可以是常量,也可以是变量。比如:
a=1+69+102; //加数全部是常量。
b=q+x+y+k+r; //加数全部是变量。
c=3+x+y+5+k; //加数有的是常量,有的是变量。
连加的运行顺序是,赋值符号“=”右边的加数挨个相加,把每一次的运算结果放在一个临时的隐藏
量里,这个隐藏的变量我们看不到是单片机系统内部参与运算时的专用寄存器等右边所有的加数连加的
计算结果出来后,再把这个隐藏变量所保存的计算结果赋值给左边的“保存变量”
【18.2 自加、自加简写、自加 1。
什么是自加?当赋值符号“=”右边的加数只要其中有一个是“保存变量”本身时,这种情况就是“自
加”,自加在程序里有一个特点,只要加数不 0,那么每执行一次这行代码,保存变量”本身就会增大一
次,不断执行这行代码保存变量本身就会不断增大而每次的增大量就取决于赋值符号“=”右边从第
2 个加数开始后面所有加数之和。自加的常见格式如下:
“保存变量”=“保存变量”+“加数 2”;
“保存变量”=“保存变量”+(“加数 2”+“加数 3”+...+“加数 N”);
在这类自加计算式中,当右边的加数有且仅有一个是“保存变量”本身时,那么上述自加计算式可以简
写成如下格式:
“保存变量”+=“加数 2”;
“保存变量”+=“加数 2”+“加数 3”+...+“加数 N”;
这种格式就是“自加简写”。现在举几个例子如下:
d+=6; //相当于 d=d+6;
e+=x; //相当于 e=e+x;
f+=18+y+k; //相当于 f=f+(18+y+k);
这些例子都是很常规的自加简写,再跟大家讲一种很常用的特殊简写。当右边只有两个加数,当一个加
数是“保存变量”,另一个加数是常 1 时,格式如下:
“保存变量”=“保存变量”+1;
这时候,可以把上述格式简写成如下两种格式
“保存变量”++;
++“保存变量”;
这两种格式也是俗称的“自加 1”操作。比如:
g++; //相当于 g=g+1 或者 g+=1;
++h; //相当于 h=h+1 或者 h+=1;
也就是说自 1 符号“++”可以在变量的左边,也可以在变量的右边它们在这里本质是一样的,没有
差别,但是如果是在某些特定情况下,这时自加 1 符号“++”在左边还是在右边是有差别的,有什么差别
呢?这个内容以后再讲。