java移位运算符详解 左移<< 右移>>无符号右移>>

1 左移运算符

           比如2<<2左移2位

         2的进制表示为

                000010

        左移2位

                001000

        转化10进制

               8

     相当于*2的位移次方

2右移运算符

2

     0010

        0010

    0000

=

0

8

   1000

       1000

    0010

2

相当于除以2的位移次方

 

3无符号右移与右移的区别

   比如

       -8 右移2位

     0000 1000   8的正数表示

     1111 0111   取反

     1111 1000 +1,8的负数表示

     1111 1110    右移, 这个2进制表示负数

     1111 1101  -1

     0000 0010 取反

   等于-2

相当于除以 2的位移次方

 -8 无符号右移2位

    1111 1000

    0011 1110

   等于 76

注意:java short byte char 数据类型移位处理是是先转换int然后去然后取位数 

    0011 1111 1111 .....1111 1110

   1111 1110

转化为

-2

 

 

 

      

    

 

     

      

 

 

  

 

   

 

posted @ 2017-08-07 16:00  muwan001  阅读(653)  评论(0)    收藏  举报