Java 的位运算符和单目运算符

一、位运算符(&、|、^、>>、<<)

(1)&:只有参加运算(二进制运算)的两位都为1,运算的结果才为1,否则为0

例如:   int  a=2;      a的二进制为:10;

             int  b=3 ;        b的二进制为:11;

             a&b=2;             a&b的二进制结果为10;  

(2)|:只有参加运算(二进制运算)的两位都为0,运算的结果才为0,否则为1

例如:   int  a=2;      a的二进制为:10;

             int  b=3 ;        b的二进制为:11;

             a&b=3;             a&b的二进制结果为11;  

(3):只有参加运算(二进制运算)的两位都不同,运算的结果才为1,否则为0

例如:   int  a=2;      a的二进制为:10;

             int  b=3 ;        b的二进制为:11;

             a&b=1;             a&b的二进制结果为01;  

*(4)>>:右移预算符,通过二进制位数向右移动来得到新的数。

例如:     int     a=36;       // a的二进制为0010 0100

               int      b=a>>2;   //a右移 2位为  0000 1001 即9,此时b的值为9

(5)<<:左移预算符,通过二进制位数向左移动来得到新的数。

例如:     int     a=4;       // a的二进制为0000 0100

               int      b=a<<2;   //a右移 2位为  0001 0000 即16,此时b的值为16

总结:>>右移运算符,右移多少位,新的值为原来的值除以2的n次幂;<<左移运算符,左移多少位,新的值为原来的值乘以2的n次幂(n为位移的位数)。

二、单目运算符(++、--)

(1)++:自增分为前自增和后自增,就是自身加1。

例如:  int a=2;

           int   b=a++;   //后自增,此时先把a的值赋值给b,b的值为2,然后a再加1,a此时的值为3;

           int   c=++b;     //前自增,此时先把b的值加1,b此时的值为3,然后赋值给c,c的值为3;

(2)--:自减分为前自减和后自减,就是自身减1。

例如:  int a=2;

           int   b=a--;   //后自减,此时先把a的值赋值给b,b的值为2,然后a再减1,a此时的值为1;

           int   c=--b;    //前自减,此时先把b的值减1,b此时的值为1,然后赋值给c,c的值为1;

你可能感兴趣的:(Java 的位运算符和单目运算符)