单片机C语言编程常用的运算符介绍
扫描二维码
随时随地手机看文章
在单片机C语言编程中,通常用到30个运算符,如表1,其中算术运算符13个,关系运算符6个,逻辑运算符3个,位操作符7个,指针运算符1个。
在C语言中,运算符具有优先级和结合性。
算术运算符优先级规定为:先乘除模(模运算又叫求余运算),后加减,括号最优先。结合性规定为:自左至右,即运算对象两侧的算术符优先级相同时,先与左边的运算符号结合。
关系运算符的优先级规定为:>、<、>=、<=四种运算符优先级相同,=、!=相同,但前四种优先级高于后四种。关系运算符的优先级低于算术运算符,高于赋值(=)运算符。
逻辑运算符的优先级次序为:!、&&、||。
当表达式中出现不同类型的运算符时,非(!)运算符优先级最高,算术运算符次之,关系运算符再次之,其次是&&和||,最低为赋值运算符。
位操作的对象只能是整型或字符数据型。
表1单片机C语言常用运算符
运算符
范例
说明
算
术
运
算内容来自单片机之家www.dpj100.com
+
a+b
a变量值和b变量值相加
-
a-b
a变量值和b变量值相减
*
a*b
a变量值乘以b变量值
/
a/b
a变量值除以b变量值
%
a%b
取a变量值除以b变量值的余数
=内容来自单片机之家www.dpj100.com
a=5
a变量赋值,即a变量值等于5
+=
a+=b内容来自单片机之家www.dpj100.com
等同于a=a+b,将a和b相加的结果存回a
-=
a-=b
等同于a=a-b,将a和b相减的结果存回a
*=
a*=b
等同于a=a*b,将a和b相乘的结果存回a
/=
a/=b
等同于a=a/b,将a和b相除的结果存回a
%=
a%=b
等同于a=a%b,将a和b相除的余数存回a内容来自单片机之家www.dpj100.com
++
a++
a的值加1,等同于a=a+1
--
a--
a的值减1,等同于a=a-1
关
系
运
算
>
a>b内容来自单片机之家www.dpj100.com
测试a是否大于b
<
a
测试a是否小于b
= =
a= =b
测试a是否等于b
>=
a>=b
测试a是否大于或等于b
<=
a<=b内容来自单片机之家www.dpj100.com
测试a是否小于或等于b
!=
a!=b
测试a是否不等于b
逻辑运算
&&
a&&b
a和b作逻辑与(AND),2个变量都为真时结果才为真
||
a||b
a和b作逻辑或(OR),只要有1个变量为真,结果就为真
!
!a
将a变量的值取反,即原来为真则变为假,原为假则为真
位
操
作
运
算
>>
a>>b
将a按位右移b个位,高位补0内容来自单片机之家www.dpj100.com
<<
a<<b
将a按位左移b个位,低位补0
|
a|b
a和b按位做或运算
&
a&b
a和b按位做与运算
^
a^b
a和b按位做异或运算
~
~a
将a的每一位取反
&
a=&b
将变量b的地址存入a寄存器
指针
*
*a
用来取a寄存器所指地址内的值