A,B:=10,20
1,算数运算符
运算符 | 描述 | 示例 | 结果 |
+ | 相加 | A+B | 30 |
- | 相减 | A-B | -10 |
* | 相乘 | A*B | 200 |
/ | 相除 | B/A | 2 |
% | 求余 | B%A | 0 |
++ | 自增 | A++ | 11 |
-- | 自减 | A-- | 9 |
2.关系运算符
运算符 | 术语 | 示例 | 结果 |
== | 相等于 | A==B | false |
!= | 不等于 | A!=B | true |
< | 小于 | A<B | false |
> | 大于 | A>B | true |
<= | 小于等于 | A<=B | false |
>= | 大于等于 | A>=B | true |
3.逻辑运算符
运算符 | 术语 | 示例 | 结果 |
&& | 与 | A&&B | 如果A和B都为真,则结果为真,否则为假 |
|| | 或 | A||B | 如果A和B都为假时,结果为假,否则为真 |
! | 非 | !A |
如果A为真,!A为假 如果A为假,!A为真 |
4.位运算
p | q | p&q | p|q | p^q | p&^q |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 1 |
a.按位与(p&q):当对应的二进制位均为1,按位与的结果为1,否则均为0;
b.按位或(p|q):当对应的二进制位均为0,按位或的结果为0,否则均为1;
c.异或(p^q):对应的二进制位相同,异或结果为0,不同,异或结果为1
d.按位置零(p&^q):当q取0,则按位置零结果和p的数据一致;当q取1,则按位置零结果为0
5.移位运算符
运算符 | 术语 | 说明 |
<< | 左移 | 左移n为,就是乘以2的n次方,左边丢弃,右边补0 |
>> | 右移 | 右移n为,就是乘除以2的n次方,右边丢弃,左边补0 |
6.赋值运算符
运算符 | 描述 | 示例 |
= | 普通赋值 | c = a + b将a + b表达式结果赋值给c |
+= | 相加后再赋值 | c += a等价于 c = c + a |
-= | 相减后再赋值 | c -= a等价于 c = c -a |
*= | 相乘后再赋值 | c *= a 等价于c = c * a |
/= | 相除后再赋值 | c /= a 等价于c = c /a |
%= | 取余后再赋值 | c %= a 等价于c = c *%a |
<<= | 左移后再赋值 | c <<= a 等价于c = c << a |
>>= | 右移后再赋值 | c >>= a 等价于c = c >>a |
&= | 按位与后赋值 | c &= a 等价于c = c & a |
^= | 按位异或后赋值 | c ^= a 等价于c = c ^ a |
|= | 按位或后赋值 | c |= a 等价于c = c | a |
7.其他运算符
运算符 | 术语 | 示例 | 说明 |
& | 取地址运算符 | &a | 变量a的地址 |
* | 取值运算符 | *a | 指针变量a所指向内存空间存储的数据 |
8.运算符优先级
优先级 | 参加运算的对象数目 | 运算符 |
1 | 二元运算符 | || |
2 | && | |
3 | <- (用于channel) | |
4 | ==、!=、<、<=、>=、> | |
5 | +、-、|、^ | |
6 | *、/、%、<<、>>、&、&^ | |
7 | 一元运算符 | ^、! |