一、四则运算

  • +-*/
  • %
  1. int a = 5/3;//a=1

除法得到的是结果的整数部分。

二、自增/自减

  1. int a = 3;
  2. a++;//4
  3. int b = 7;
  4. b--;//6
  5. int c = 8;
  6. int d;
  7. int e = 8;
  8. d = --c + 2;//d = 9
  9. d = e-- + 2;//d = 10

三、位移运算

整数在计算机中使用二进制表示的。
int类型的整数7使用4字节的二进制表示如下:
00000000 0000000 0000000 00000111

  1. int a = 7;//00000000 0000000 0000000 00000111
  2. //左移一位 14
  3. a = a<<1;//00000000 0000000 0000000 00001110

四、无符号右移

>>>
右移后高位总是补0。因此,负数右移会变正数。

五、位运算

与、或、非、异或
&、|、~、^
与:两个数同为1,结果才是1
或:任意一个是1,结果就为1
非:0、1互换
异或:两个数不同结果就是1,相同结果就是0

步骤:

  1. 先按位对齐
  2. 再对每一位进行运算

    1. int a = 3;//00000000 0000000 0000000 00000011
    2. int b = 4;//00000000 0000000 0000000 00000100
    3. int c = a & b;//***111

    参考

  3. 整数运算 - 廖雪峰的官方网站