Skip to content

1 基本运算符

  • 加法运算符: +
  • 减法运算符: -
  • 乘法运算符: *
  • 除法运算符: /
  • 取模运算符: %
  • 赋值运算符: =
  • 负数运算符: -

2 自增自减运算符

  • 自增运算符: ++
  • 自减运算符: --

放在变量的前后有区别,以自增运算符为例

  • a++ 先返回 a 的值,然后 a 自增
  • ++a 先自增 a 的值,然后返回 a

3 位运算符

位运算符分为以下类型

  • 左移运算符: << , 将二进制往左移动一位,后面补 0
  • 右移运算符: >> ,将二进制网右移动一位,左侧补 0
  • 按位与运算: & ,将二进制的每一个 bit 位进行 & 操作,都是 1 则结果为 1,其余为 0
  • 按位或运算: | ,将二进制的每一个 bit 位进行 & 操作,其中一个是 1 则结果为 1,其余为 0
  • 按位异或符: ^ , 将二进制的每一个 bit 位进行比较,如果相同则结果为 0,如果不同则结果为 1
  • 按位非运算: ~ , 将每一个 bit 位置反

按位非举个栗子:

  1. int a = 2; a = ~a; a 最终为 -3;
  2. int a 的二进制原码为:00000000 00000000 00000000 00000010;
  3. 按位非取反后原码变为:11111111 11111111 11111111 11111101;
  4. 要变成补码需要先变成反码后 +1 因此补码为:10000000 00000000 00000000 00000010 + 00000000 00000000 00000000 00000001 = 10000000 00000000 00000000 00000011, 计算得出 -3.

4 逻辑运算符

常见的逻辑运算符有:<、 <=、>=、>、!=、==、&&、||、?:,和其他语言基本一致

5 运算符优先级

运算符的优先级,从上往下依次降低

运算符描述
()括号运算符
[]、.、->数组、结构体、指向结构体成员的指针运算符
++、--自增、自减运算符
+、-正负号、加减运算符
!、~逻辑非、按位取反运算符
*、/、%乘、除、取模运算符
+、-加、减运算符
<<、>>左移、右移运算符
<、<=、>、>=关系运算符
==、!=相等、不等运算符
&按位与运算符
^按位异或运算符
|按位或运算符
&&逻辑与运算符
||逻辑或运算符
?:条件运算符
=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=赋值运算符

Released under the MIT License.