C51中的运算符
C51中的运算符与通用C语言基本一致,常用的主要是位运算符、算术运算符、关系运算符、逻辑运算符和赋值运算符等,下面分别介绍这些运算符。
(1)位运算符
汇编语言对位的处理能力是很强的,但是C语言也能对运算对象进行按位操作,从而使C语言也能具有一定的对硬件直接进行操作的能力。位运算符的作用是按位对变量进行运算,但是并不改变参与运算的变量的值。如果要求按位改变变量的值,则要利用相应的赋值运算。还有就是位运算符是不能用来对浮点型数据进行操作的。C51中有6种位运算符,如表1.5.3所示。
表1.5.3 位运算符
运算符 |
功能 |
& |
按位与 |
| |
按位或 |
^ |
按位异或 |
~ |
按位取反 |
>> |
右移 |
<< |
左移 |
(2)算术运算符
C51算术运算符与通用C语言完全一致,就是对数值进行算术运算,其中加、减、乘、除、求余运算是双目运算,其结果可以是字符型数、整数和实数(注意求余运算符结果是整数)。自增、自减运算是单目运算,其操作对象只能是整型变量,不能是常量或表达式等其他形式。C51中有7种算术运算符,如表1.5.4所示。
表1.5.4 算术运算符
运算符 |
功能 |
+ |
加法 |
- |
减法 |
* |
乘法 |
/ |
除法 |
% |
求余运算 |
++ |
自加 |
-- |
自减 |
(3)关系运算符
C51关系运算符与通用C语言完全一致,用于对两个操作数的比较。关系运算符中的“关系”二字的含义是指一个数据与另一个数据之间的关系,这种关系只有成立与不成立两种可能情况,在C51中用逻辑值来表示,逻辑上的真与假是用数字“1”与“0”来表示的。关系成立时结果为真(1),否则结果为假(0)。C51中有6种关系运算符,如表1.5.5所示。
表1.5.5 关系运算符
运算符 |
功能 |
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
== |
测试相等 |
!= |
测试不等 |
(4)逻辑运算符
C51逻辑运算符与通用C语言完全一致,用于进行逻辑运算。优先级:!运算级别最高、&&运算与||运算同级。!运算的优先级高于算术运算符,而&&和||运算则低于关系运算符。结合方向:逻辑非(单目运算符)具有右结合性;逻辑与和逻辑或(双目运算符)具有左结合性。C51中有3种逻辑运算符,如表1.5.6所示。
表1.5.6 逻辑运算符
运算符 |
功能 |
&& |
逻辑与 |
|| |
逻辑或 |
! |
逻辑非 |
(5)赋值运算符
C51逻辑运算符与通用C语言完全一致,赋值运算符(=)用于连接表达式(右侧)和变量(左侧),即将赋值运算符右侧的表达式的结果赋予赋值运算符左侧的变量,右侧的表达式可以是常量、变量、表达式或另外一个赋值表达式。C51中有12种逻辑运算符,其中第1种是基本赋值运算,其他11种是复合赋值运算,如表1.5.7所示。
表1.5.7 赋值运算符
运算符 |
功能 |
= |
基本赋值 |
+= |
加法赋值 |
-= |
减法赋值 |
*= |
乘法赋值 |
/= |
除法赋值 |
%= |
求余赋值 |
>>= |
右移赋值 |
<<= |
左移赋值 |
&= |
按位与赋值 |
|= |
按位或赋值 |
^= |
按位异或赋值 |
~= |
按位取反赋值 |
转载:https://blog.csdn.net/dyq1995/article/details/103613032