java中有三种移位运算符　>　:　右移运算符,num　>>　1,相当于num除以2　>>>　:　无符号右移,忽略符号位,空位都以0补齐　下面来看看这些移位运算都是怎样使用的　1　/**　2　*　3　*/　4　package　com.b510.test;　5　6　/**　7　*　@author　Jone　Hongten　8　*　@create　date:2013-11-2　9　*　@version　1.0　10　*/　11　public　class　Test　{　12　13　public　static　void　main(String[]　args)　{　14　int　number　=　10　;　15　//　原始数二进制　16　printInfo(number);　17　number　=　number　>　1　;　21　//　右移一位　22　printInfo(number);　23　}　24　25　/**　26　*　输出一个int的二进制数　27　*　@param　num　28　*/　29　private　static　void　printInfo(　int　num){　30　System.out.println(Integer.toBinaryString(num));　31　}　32　}　运行结果为:　我们把上面的结果对齐一下:　43210　位数　1010　十进制:10　原始数　number10100　十进制:20　左移一位　number　=　number　>　1;　看了上面的demo,现在是不是对左移和右移了解了很多了呢　对于:>>>　无符号右移,忽略符号位,空位都以0补齐　value　>>>　num　--　num　指定要移位值value　移动的位数。　无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位　无符号右移运算符>>>　只是对32位和64位的值有意义　如果你没有穷举所有的情况,就以为上面的结论是正确的,那么我们认为你还是太年轻!　详情请参考官方文档:　https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html　区别:　https://stackoverflow.com/questions/2811319/difference-between-and　More　readin