Java 数字左、右移

  <<:其实就是乘以2的移动的位数次幂。

  >>: 就是除以2的移动的位数次幂。

  例如:

Java 位运算符:

<<:

  3<<2=12; =>3*4=12;

  3<<1=6;=>3*2=6;

 >>:

  6>>2=1 =>6/2(2)=1;

  6>>1=3 =>6/2(1)=3;

 如果是数字的:

>>:最高位补什么由原来的最高位值而定。

  如果最高位0,右移后,用0补空位。

  如果最高位1,右移后,用1补空位。

 >>>:无论最高为是什么,右移后都用0补.

  

位运算符的细节

<<

空位补0,被移除的高位丢弃,空缺位补0。

>>


被移位的二进制最高位是0,右移后,空缺位补0;
最高位是1,空缺位补1。

>>>

被移位二进制最高位无论是0或者是1,空缺位都用0补。

&

二进制位进行&运算,只有1&1时结果是1,否则是0;
| 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;

^


任何相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0
不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
posted @ 2014-11-28 22:42  唥凊-洫栤  阅读(126)  评论(0)    收藏  举报