黑马程序员技术交流社区

标题: Java基础--位运算符:<<、>>、<<<等 [打印本页]

作者: michael_wlq    时间: 2015-8-24 17:44
标题: Java基础--位运算符:<<、>>、<<<等
本帖最后由 michael_wlq 于 2015-8-24 17:47 编辑

位运算符:直接对二进制进行运算,所以最有效率的方法计算2乘以8等于几是2<<3(直接左移三位)。
  运算符  
运算
  
  
范例
  
  
<<
  
  
左移
  
  
3  << 2 = 12 --> 3*2*2=12
  
  
>>
  
  
右移
  
  
3  >> 1 = 1  --> 3/2=1
  
  
>>>
  
  
无符号右移
  
  
3  >>> 1 = 1 --> 3/2=1
  
  
&
  
  
与运算
  
  
6  & 3 = 2
  
  
|
  
  
或运算
  
  
6 |  3 = 7
  
  
^
  
  
异或运算
  
  
6 ^  3 = 5
  
  
~
  
  
反码
  
  
~6  = -7
  
  
<<
  
  
空位补0,被移除的高位丢弃,空缺位补0。
  
  
>>
  
  
被移位的二进制最高位是0,右移后,空缺位补0;
  
最高位是1,空缺位补1。
  
  
>>>
  
  
被移位二进制最高位无论是0或者是1,空缺位都用0补。
  

<<:相当于乘与2的倍数
>>:相当于除以2的倍数
移n位,就是对乘以或者除以2的n次幂。
另外,异或运算可以用来加密和解密







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2