从单片机基础到程序框架(全集 2019pdf版) - 第160页
第 2 个数 十进制:300 0000 十六进制:2 DC6C0 二进制:101 101110001 1011000000 第 3 个数 十进制:300 0000 十六进制:2 DC6C0 二进制:101 101110001 1011000000 分析: 通过实验结 果,发现在单 片机上的实验 结果 和我们的分析 是一致的。 【38.6 如何在单片机上练习本章节 C 语言程序?】 直接复制前 面章节中第十 一节的模板程 序, 练习代码时…

【38.5 例程练习和分析。】
现在编写一个程序来验证刚才讲到的主要内容:
程序代码如下:
/*---C 语言学习区域的开始。-----------------------------------------------*/
unsigned long a=0;
unsigned long b=0;
unsigned long c=0;
unsigned int x=1000;
unsigned int y=3000;
unsigned long s; //中间变量
unsigned long t;
void main() //主函数
{
a=x*y; //意外溢出
s=x; //引入中间变量
t=y;
b=s*t;
c=(unsigned long)x*(unsigned long)y; //类型的强制转换
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
View(b); //把第 2 个数 a 发送到电脑端的串口助手软件上观察。
View(c); //把第 3 个数 a 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
第 1 个数
十进制:50880
十六进制:C6C0
二进制:1100011011000000

第 2 个数
十进制:3000000
十六进制:2DC6C0
二进制:1011011100011011000000
第 3 个数
十进制:3000000
十六进制:2DC6C0
二进制:1011011100011011000000
分析:
通过实验结果,发现在单片机上的实验结果和我们的分析是一致的。
【38.6 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改“C 语言学习区域”的代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口的 51 学习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。

第三十九节:if 判断语句以及常量变量的真假判断。
【39.1 if 语句常规的书写格式。】
“if”在英文里的含义是“如果”的意思,在 C 语言里也是这个意思,是判断语句的专用关键词,也是
平时做项目时应用的频率最高的语句之一。
如果 if 小括号里面的条件满足,就执行条件后面大括号里的语句;如果条件不满足,则直接跳过条件
后面大括号里的语句。“if”语句的常见格式如下:
if(条件)
{
语句 1;
语句 2;
}
语句 3;
语句 4;
上述分析:
如果(条件)满足,就从“语句 1”开始往下执行,直到把大括号里面所有的语句执行完之后,才跳出
大括号,接着从大括号之外的“语句 3”开始往下执行。
如果(条件)不满足,就直接跳过大括号里所有的语句,直接从大括号之外的“语句 3”处开始往后执
行。
【39.2 if 语句省略大括号的用法。】
除了上述之外,还有一种省略大括号的书写格式,但是要注意,当 if 条件语句后面省略了大括号时,
如果 if 小括号里面的条件满足,仅仅执行条件后面第一条语句,如果条件不满足,则跳过条件后面第一条
语句。比如:
if(条件)
语句 1;
语句 2;
语句 3;
语句 4;
上述分析:
如果(条件)满足,就从语句 1 开始一直往下执行。
如果(条件)不满足,就直接跳过(条件)后的第一条语句“语句 1”,直接从(条件)后的第二条语句
“语句 2”开始往后执行。
上述格式省略了大括号,实际上它等效于以下这种书写:
if(条件)
{
语句 1;
}
语句 2;
语句 3;
语句 4;