算术运算符
符号
|
使用方法
|
说明
|
备注
|
+
|
a+b
|
a加上b
| |
-
|
a-b
|
a减去b
| |
*
|
a*b
|
a乘b
| |
/
|
a/b
|
a除b
|
只保留整数部分
5/3=1
|
%
|
a%b
|
a模除b
|
求余运算符,7%3=1
|
位运算符
符号
|
使用方法
|
说明
|
~
|
~a
|
将a的每个位进行取反
|
&
|
a&b
|
将a的每个位与b相同的位进行相与
|
|
|
a|b
|
将a的每个位与b相同的位进行相或
|
^
|
a^b
|
将a的每个位与b相同的位进行异或
|
^~
|
a^~b
|
将a的每个位与b相同的位进行同或
|
两个长度不同的数据进行位运算时,系统会自动的将两者按右端对齐.位数少的操作数会在相应的高位用0填满,以使两个操作数按位进行操作
移位运算符
符号
|
使用方法
|
说明
|
<<
|
a<<b
|
将a左移b位
|
>>
|
a>>b
|
将a右移b位
|
假设a有8bit数据位宽,那么a<<2,表示a左移2bit,a还是8bit数据位宽,a的最高2bit数据被移位丢弃了,最低2bit数据固定补0。如果a是3(二进制:00000011),那么3左移2bit,3<<2,就是12(二进制:00001100)。一般使用左移位运算代替乘法,右移位运算代替除法,但是这种也只能表示2的指数次幂的乘除法。
关系运算符
符号
|
使用方法
|
说明
|
>
|
a>b
|
a大于b
|
<
|
a<b
|
a小于b
|
>=
|
a>=b
|
a大于等于b
|
<=
|
a<=b
|
a小于等于b
|
==
|
a==b
|
a等于b
|
!=
|
a!=b
|
a不等于b
|
逻辑运算符
符号
|
使用方法
|
说明
|
!
|
!a
|
a的非,如果a为0,那么a的非为1
|
&&
|
a&&b
|
a与b,如果a和b都为1,那么a&&b的结果为1,表示真
|
||
|
a||b
|
a或b,如果a或b有一个是1,那么a||b的结果为1,表示真
|
条件运算符
符号
|
使用方法
|
说明
|
?:
|
a?b:c
|
如果a为真,选择b,如果a为假,选择c
|
拼接运算符
符号
|
使用方法
|
说明
|
{}
|
{a,b}
|
将a和b拼接起来,作为一个新信号
|
运算符的优先级
运算符
|
优先级
|
!、~
|
最高
|
*、/、%
|
次高
|
+、-
|
优先级依次降低
|
<<、>>
| |
<、<=、>、>=
| |
==、!=、===、!==
| |
&
| |
^、^~
| |
|
| |
&&
| |
||
|
次低
|
?
|
最低
|