JAVA第三弹(运算符<二>)

来源:互联网 发布:mac os x 10.12 iso 编辑:程序博客网 时间:2024/05/18 12:38

----------------------android培训、java培训、期待与您交流! ----------------------

                                                           JAVA第三弹(运算符<>

                        ——————(个人见解,有错误的地方欢迎批评指正)—————

                                                               (如有雷同纯属巧合)

<1>位运算

位运算就是逐位运算,例如:0100110110110011进行&(AND)运算,运算方式如下:

Java提供了7个位运算符,分别是:&()|(或),^(异或),~(补码),<<(左移),>>(右移),>>>(无符号右移)

例:

System.out.println(1&0);//结果为:0System.out.println(0&1);//结果为:0System.out.println(0&0);//结果为:0System.out.println(1&1);//结果为:1System.out.println(1 | 0);//结果为:1System.out.println(0 | 1);//结果为:1System.out.println(1 | 1);//结果为:1System.out.println(0 | 0);//结果为:0System.out.println(0 ^ 0);//结果为:0System.out.println(1 ^ 0);//结果为:1System.out.println(0 ^ 1);//结果为:1System.out.println(1 ^ 1);//结果为:0

而补码(~)属于一元运算符,可以这么理解:加一取反。例:0000 0001通过补码运算会变成1111 1110

例:

int i = 10;System.out.println( ~ i );

程序输出为:-11.

左移(<<),java中左移运算符会将所有位往左移指定位数,左边高位被挤出去的位会被丢弃,右边的低位则补上0

例:

int i = 2;System.out.println(i<<1);System.out.println(i<<2);

程序的输出结果为:4

图解:

右移(>>)则相反,会将所有的位往右挤,右边低位被挤出去的位数被丢弃,而左边的高位则补上原来的位,比如最左边是0则补0,左边是1则补1

例:

 int a = 2; int b = -2; System.out.println(a>>2); System.out.println(b>>2);

程序输出结果为:-1

图解:

 

至于无符号右移(>>>),和>>差不多,但是左边高位的补位,不管是1还是0,全是补0

<2>指定运算

指定运算符的作用基本上是写程序的时候减少一些代码的书写。

+= ,例:a += b,相当于a = a + b

-= ,例:a -= b ,相当于a = a - b

*= ,例:a *= b ,相当于 a = a * b

/= ,例:a /= b ,相当于 a = a / b

%= ,例:a %= b ,相当于 a = a % b

&= ,例:a &= b ,相当于a = a & b

|= ,例:a |= b ,相当于 a = a | b

^= ,例:a ^= b ,相当于 a = a ^ b

<<= ,例:a <<= b ,相当于 a = a << b

>>= ,例:a >>= b ,相当于 a = a >> b

>>>= ,例:a >>>= b ,相当于 a = a >>> b

 

----------------------android培训、java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

原创粉丝点击