您的位置 首页 FPGA

第16节:加法运算的5种常用格局

从业十年,教你单片机入门第16讲:根据上一节的预告,本来这节应该讲判断语句的,但是考虑到后续章节的连贯性,决定先讲运算语法。在讲运

从业十年,教你单片机入门 第16讲:

依据上一节的预告,原本这节应该讲判别句子的,可是考虑到后续章节的连贯性,决议先讲运算语法。

在讲运算语法之前,先讲一个我在前面忘了讲的知识点,那便是注释句子。何谓注释句子?在我前面一些章节的main函数中,经调查,发现一个规则,但凡中文说明的文字,要么前面有符号”//”,要么便是被包含在“/*”和”*/”之间。符号“//”和“/* */”都是注释句子。注释句子是用来添加文字备忘,便利程序员阅览回忆的。在注释句子里的文字是不会被编译器翻译成机器码的,也便是说即便注释里边的文字再多,也不会添加单片机的程序容量,它是被编译器过滤疏忽的,只是便利程序员做补白文字罢了。

符号“//”和“/* */”都是注释句子,但使用方面有点小差异。符号“//”是用来注释一行文字。而“/* */”往往是用来注释一段文字,当然“/* */”也能够注释一行文字。可是符号“//”只是能注释一行文字,却不能注释一段文字。

讲完注释句子,持续回到本节正题。单片机自身具有了简略的加减乘除运算才能,咱们只需求经过C言语调用相关的运算语法,即可指示单片机按咱们的要求进行简略的运算。至于内部详细的运算细节咱们能够不论,除非是涉及到大数据的运算才需求咱们额定编写算法。请先看以下的加法语法格局:

“保存变量”=“加数1”+“加数2”+…+“加数N”;

意义是:右边的“加数”与“加数”相加,而且把终究的运算成果赋值给左面的“保存变量”。留意,这儿的符号“=”不是等于号的意思,而是赋值的意思。左面的“保存变量”有必要是变量,不能是常量,不然编译时会报错。而右边的“加数”既能够是变量,也能够是常量,也能够是“保存变量”自身自己。多说一句,何谓变量和常量?变量便是能够在程序中被更改的,是分配的一个RAM空间。而常量往往便是数字,或许是被分配在ROM空间的一个详细数值。下面依据右边“被加数”与“加数”的不同组合,列出了加法运算的5种常用格局

第1种:“加数1”是常量,“加数2”是常量。比方:

unsigned char a;

a=3+15;

数字“3”和“15”都是常量。履行上述句子后,保存变量a变成了18。

第2种:“加数1”是变量,“加数2”是常量。比方:

unsigned char b;

unsigned char x=10;

b=x+15;

x是变量,“15”是常量。因为本来x变量里边的数值是10,履行上述句子后,保存变量b变成了25。而变量x则坚持不变,x仍是10。

第3种:“加数1”是变量,“加数2”是变量。比方:

unsigned char c;

unsigned char x=10;

unsigned char y=6;

c=x+y;

x是变量,y也是变量。因为本来x变量里边的数值是10,y变量里边的数值是6,履行上述句子后,保存变量c变成了16。而变量x和y则坚持不变,x仍是10,y仍是6。

第4种:“加数1”是保存变量自身,“加数2”是常量。比方:

unsigned char d=2;

d=d+18;

d=d+7;

d是保存变量,“18”是常量。这类句子有一个特色,具有了自加功用,能够更改自己自身自己的数值。比方本来保存变量d的数值是2,履行“d=d+18;”句子后,d变成了20,接着再履行完“d=d+7;”句子后,d最终变成了27。

第5种:“加数1”是保存变量自身,“加数2”是变量。比方:

unsigned char e=2;

unsigned char x=10;

unsigned char y=6;

e=e+x;

e=e+y;

e是保存变量,x与y都是变量。这类句子有一个特色,具有了自加功用,能够更改自己自身自己的数值。比方本来保存变量e的数值是2,履行“e=e+x;”句子后,e变成了12,接着再履行完“e=e+y;”句子后,e最终变成了18。

现在编写一个程序来操练上述5种格局的加法句子,最终把程序编译后下载到坚鸿51学习板调查成果。请直接仿制第十节模板程序,修正的main程序代码如下:

void main() //主程序

{

/*—C言语学习区域的开端—————————————————————————*/

unsigned char a; //界说一个变量a,而且分配了1个字节的RAM空间。

unsigned char b; //界说一个变量b,而且分配了1个字节的RAM空间。

unsigned char c; //界说一个变量c,而且分配了1个字节的RAM空间。

unsigned char d=2; //界说一个变量d,而且分配了1个字节的RAM空间。初始化默以为2.

unsigned char e=2; //界说一个变量e,而且分配了1个字节的RAM空间。初始化默以为2.

unsigned char x=10; //界说一个变量x,而且分配了1个字节的RAM空间。初始化默以为10.

unsigned char y=6; //界说一个变量y,而且分配了1个字节的RAM空间。初始化默以为6.

//第1种:“加数1”是常量,“加数2”是常量。

a=3+15;

//第2种:“加数1”是变量,“加数2”是常量。

b=x+15;

//第3种:“加数1”是变量,“加数2”是变量。

c=x+y;

//第4种:“加数1”是保存变量自身,“加数2”是常量。

d=d+18;

d=d+7;

//第5种:“加数1”是保存变量自身,“加数2”是变量。

e=e+x;

e=e+y;

GuiWdData0=a; //把变量a这个数值放到窗口变量0里边显现

GuiWdData1=b; //把变量b这个数值放到窗口变量1里边显现

GuiWdData2=c; //把变量c这个数值放到窗口变量2里边显现

GuiWdData3=d; //把变量d这个数值放到窗口变量3里边显现

GuiWdData4=e; //把变量e这个数值放到窗口变量4里边显现

/*—C言语学习区域的完毕—————————————————————————*/

while(1)

{

initial();

key_service();

display_service();

}

}

如安在坚鸿51学习板上调查a,b,c,d,e这5个变量?按下S1或许S5按键即可切换显现不同的窗口,然后显现不同的变量。上坚鸿51学习板调查程序履行的成果如下:

变量a为18。

变量b为25。

变量c为16。

变量d为27。

变量e为18。

下节预告:加法的连写和自加运算的简写。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/262142.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部