一、说明
<<:运算符将二进制位进行左移操作
>>:运算符将二进制位进行右移操作
>>>:运算符将用0填空高位
二、举例
1 /** 2 * 3 *----------caonima be here!----------/ 4 * ┏┓ ┏┓ 5 * ┏┛┻━━━┛┻┓ 6 * ┃ ┃ 7 * ┃ ━ ┃ 8 * ┃ ┳┛ ┗┳ ┃ 9 * ┃ ┃ 10 * ┃ ┻ ┃ 11 * ┃ ┃ 12 * ┗━┓ ┏━┛ 13 * ┃ ┃神兽保佑 14 * ┃ ┃代码无BUG! 15 * ┃ ┗━━━┓ 16 * ┃ ┣┓ 17 * ┃ ┏┛ 18 * ┗┓┓┏━┳┓┏┛ 19 * ┃┫┫ ┃┫┫ 20 * ┗┻┛ ┗┻┛ 21 * ━━━━━━神兽出没━━━━━━ 22 * 23 * @author 赵天恩 24 * @version 1.0 25 * 创建时间:2015年5月4日 15:25:55 26 */ 27 public class Demo { 28 public static void main(String[] args) { 29 int i = 2; 30 //原是数值转成二进制 31 STT(i); 32 // 左移操作 33 // 左移操作后的二进制 34 STT(i << 1); 35 //右移操作 36 // 右移操作后的二进制 37 STT(i >> 1); 38 // 39 STT(i>>>1); 40 41 } 42 43 /** 44 * 十进制转成二进制 45 * 46 * @param i 47 */ 48 public static void STT(int i) { 49 System.out.println("原数据:"+i); 50 System.out.println("原数据转成二进制:"+Integer.toBinaryString(i)); 51 } 52 }
运行结果:
原数据:2
原数据转成二进制:10
原数据:4
原数据转成二进制:100
原数据:1
原数据转成二进制:1
原数据:1
原数据转成二进制:1
三、讲解
四、补充
针对>>>运算符,是将0填充高位,一般使用较少
面试的时候,面试官会问道如何用最短的时间实现1+1=2,这个时候你应该毫不犹豫的答道:“1<<1”。
五、参考项
http://www.cnblogs.com/hongten/p/hongten_java_yiweiyunsuangfu.html