在单片机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寄存器所指地址内的值 |
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』