单片机C语言C51的运算符及表达式

您所在的位置:网站首页 与或非逻辑符号c语言 单片机C语言C51的运算符及表达式

单片机C语言C51的运算符及表达式

2023-09-25 12:30| 来源: 网络整理| 查看: 265

1.  赋值运算符

赋值运算符“=”,在C51中,它的功能是将一个数据的值赋给一个变量,如x=10。利用赋值运算符将一个变量与一个表达式连接起来的式子称为赋值表达式,在赋值表达式的后面加一个分号“;”就构成了赋值语句,一个赋值语句的格式如下:

        变量=表达式;

执行时先计算出右边表达式的值,然后赋给左边的变量。例如:

     x=8+9;   /*将8+9的值赋绐变量x*/

     x=y=5;   /*将常数5同时赋给变量x和y*/

在C51中,允许在一个语句中同时给多个变量赋值,赋值顺序自右向左。

2.  算术运算符

C51中支持的算术运算符有:

+    加或取正值运算符

-    减或取负值运算符

    *    乘运算符

/    除运算符

   %    取余运算符

加、减、乘运算相对比较简单,而对于除运算,如相除的两个数为浮点数,则运算的结果也为浮点数,如相除的两个数为整数,则运算的结果也为整数,即为整除。如25.0/20.0结果为1.25,而25/20结果为1。

对于取余运算,则要求参加运算的两个数必须为整数,运算结果为它们的余数。例如:x=5%3,结果x的值为2。

3.  关系运算符

C51中有6种关系运算符:

>    大于

<    小于

>=   大于等于

3,结果为真(1),而10= =100,结果为假(0)。

注意:关系运算符等于“= =”是由两个“=”组成。

4.  逻辑运算符

C51有3种逻辑运算符:

||    逻辑或

&&    逻辑与

!    逻辑非

关系运算符用于反映两个表达式之间的大小关系,逻辑运算符则用于求条件式的逻辑值,用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。

逻辑与,格式:

       条件式1 && 条件式2

当条件式1与条件式2都为真时结果为真(非0值),否则为假(0值)。

逻辑或,格式:

       条件式1 || 条件式2

当条件式1与条件式2都为假时结果为假(0值),否则为真(非0值)。

逻辑非,格式:

        !条件式

当条件式原来为真(非0值),逻辑非后结果为假(0值)。当条件式原来为假(0值),逻辑非后结果为真(非0值)。

例如:若a=8,b=3,c=0,则!a为假,a && b为真,b && c为假。

C51语言能对运算对象按位进行操作,它与汇编语言使用一样方便。位运算是按位对变量进行运算,但并不改变参与运算的变量的值。如果要求按位改变变量的值,则要利用相应的赋值运算。C51中位运算符只能对整数进行操作,不能对浮点数进行操作。C51中的位运算符有:

5.  位运算符

&    按位与

|    按位或

^    按位异或

~    按位取反

>    右移

【例】设a=0x45=01010100B,b=0x3b=00111011B,则a&b、a|b、a^b、~a、a2分别为多少?

a&b=00010000b=0x10。

a|b=01111111B=0x7f。

a^b=01101111B=0x6f。

~a=10101011B=0xab。

a2=00001110B=0x0e。

6.  复合赋值运算符

C51语言中支持在赋值运算符“=”的前面加上其它运算符,组成复合赋值运算符。下面是C51中支持的复合赋值运算符

 +=    加法赋值             -+    减法赋值

 *=    乘法赋值            /=     除法赋值

 %=    取模赋值           &=    逻辑与赋值

 |=    逻辑或赋值           ^=    逻辑异或赋值

 ~=    逻辑非赋值         >>=    右移位赋值

 =2相当于x=x>>2。

7.  逗号运算符

在C51语言中,逗号“,”是一个特殊的运算符,可以用它将两个或两个以上的表达式连接起来,称为逗号表达式。逗号表达式的一般格式为:

         表达式1,表达式2,……,表达式n

程序执行时对逗号表达式的处理:按从左至右的顺序依次计算出各个表达式的值,而整个逗号表达式的值是最右边的表达式(表达式n)的值。例如:x=(a=3,6*3)结果x的值为18。

8. 条件运算符

条件运算符“?:”是C51语言中唯一的一个三目运算符,它要求有三个运算对象,用它可以将三个表达式连接在一起构成一个条件表达式。条件表达式的一般格式为:

            逻辑表达式?表达式1:表达式2

其功能是先计算逻辑表达式的值,当逻辑表达式的值为真(非0值)时,将计算的表达式1的值作为整个条件表达式的值;当逻辑表达式的值为假(0值)时,将计算的表达式2的值作为整个条件表达式的值。例如:条件表达式max=(a>b)?a:b的执行结果是将a和b中较大的数赋值给变量max。

9.  指针与地址运算符

指针是C51语言中的一个十分重要的概念,在C51中的数据类型中专门有一种指针类型。指针为变量的访问提供了另一种方式,变量的指针就是该变量的地址,还可以定义一个专门指向某个变量的地址的指针变量。

为了表示指针变量和它所指向的变量地址之间的关系,C51中提供了两个专门的运算符:

  *    指针运算符

  &    取地址运算符

指针运算符“*”放在指针变量前面,通过它实现访问以指针变量的内容为地址所指向的存储单元。例如:指针变量p中的地址为2000H,则*p所访问的是地址为2000H的存储单元,x=*p,实现把地址为2000H的存储单元的内容送给变量x。

取地址运算符“&”放在变量的前面,通过它取得变量的地址,变量的地址通常送给指针变量。例如:设变量x的内容为12H,地址为2000H,则&x的值为2000H,如有一指针变量p,则通常用p=&x,实现将x变量的地址送给指针变量p,指针变量p指向变量x,以后可以通过*p访问变量x。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3