java中的移位运算

java中的移位运算符

<<      :     左移运算符,num << 1,相当于num乘2

>>      :     右移运算符,num >> 1,相当于num除2

移位运算相比于单纯的乘除法运算,移位运算要快得多。

运算实例分析如下:
java中的移位运算_第1张图片
a×100和b左移运算的的结果如下

在这里插入图片描述
a÷16和b右移运算的的结果如下

java中的移位运算_第2张图片

java中的移位运算_第3张图片

>>>(无符号右移)  无符号右移,忽略符号位,空位都以0补齐

10进制转二进制的时候,因为二进制数一般分8位、 16位、32位以及64位 表示一个十进制数,所以在转换过程中,最高位会补零。在计算机中负数采用二进制的补码表示,10进制转为二进制得到的是源码,将源码按位取反得到的是反码,反码加1得到补码二进制的最高位是符号位,0表示正,1表示负。

java中的移位运算_第4张图片
java中的移位运算_第5张图片

可见正数做>>>运算的时候和>>是一样的。区别在于负数运算

你可能感兴趣的:(java中的移位运算)