一.运算符。
1.算数运算符:+,-,*,/,%
2.自增自减 :++ ,--
++在前 先运算在赋值
++在后 先赋值后运算
-- 减减同上.
3.赋值运算符 : = ,+=,-=,*=,/=
4.关系运算符 : >,<,>=,<=,== ,!=
5.逻辑运算符: & ,| ,! ,&& ,||
6.位运算符:
(1).位运算符的符号:
& (与):两者都是1的时候我就是一,其他都是0
|(或):两者都为0时才为0 ,其他的都是1.
^(异或):两者不同为1,相同为0
~(取反):0变为1,1变为0.
(2).负数的表现形式: 二进制位的最高位为1,那么这个数就是一个负数。
-1:1111-1111 1111-1111 1111-1111 1111-1111
0:0000-0000 0000-0000 0000-0000 0000-0000
-2:1111-1111 1111-1111 1111-1111 1111-1110
-3:1111-1111 1111-1111 1111-1111 1111-1101
-4:1111-1111 1111-1111 1111-1111 1111-1100
-5:1111-1111 1111-1111 1111-1111 1111-1011
-6:1111-1111 1111-1111 1111-1111 1111-1010
-7:1111-1111 1111-1111 1111-1111 1111-1001
7:0000-0000 0000-0000 0000-0000 0000-0111
规律:负数所对应的正数-1 ,取反负数所对应的正数取反+1
(3).移位操作符:对二进制位进行操作
>> 右移
<< 左移
>>> 无符号右移
//右移:
System.out.println(6>>1); // --->3 6/2 2*1
System.out.println(6>>2); // --->1 6/4 2*2
System.out.println(6>>3); // --->0 6/8 2*3
System.out.println(-6>>1); // -6/2 -->-3
//规律: 右移多少位,就用需要移动的数除以2的多少次方。
//左移 :
System.out.println(6<<1); // --->12 6*2 2*1
System.out.println(6<<2); // --->24 6*4 2*2
System.out.println(6<<3); // --->48 6*8 2*2*2
System.out.println(6<<4); //---->96 6*16 2*2*2*2
System.out.println(-6<<2);//--->-24
//规律: 左移多少位,就用这个数乘以2多少次方。
//>>>无符号的右移
特点:无论你的最高位是0还是1,空缺位都补0。
System.out.println(6>>>1); //3
System.out.println(6>>>2); //1
System.out.println(-6>>>2); // 1073741822