java中的移位运算符
<< : 左移运算符,num << 1,相当于num乘2
>> : 右移运算符,num >> 1,相当于num除2
移位运算相比于单纯的乘除法运算,移位运算要快得多。
运算实例分析如下:
a×100和b左移运算的的结果如下
a÷16和b右移运算的的结果如下
>>>(无符号右移) 无符号右移,忽略符号位,空位都以0补齐
10进制转二进制的时候,因为二进制数一般分8位、 16位、32位以及64位 表示一个十进制数,所以在转换过程中,最高位会补零。在计算机中负数采用二进制的补码表示,10进制转为二进制得到的是源码,将源码按位取反得到的是反码,反码加1得到补码二进制的最高位是符号位,0表示正,1表示负。
可见正数做>>>运算的时候和>>是一样的。区别在于负数运算