Java基础之 位移运算(另类的乘除法)

Java基础之 位移运算(另类的乘除法)

从上图可以看出 8 3    4 2 之间一定存在某种关系; 由下图来解释位移运算

在计算机的世界中  数字全部以二进制进行存储

Java基础之 位移运算(另类的乘除法)

3<<3     大于小于号箭头所指的方向 就是位移的方向

Java基础之 位移运算(另类的乘除法)

3左移三位  就是将整个数位向左平移动三位,空出的位置 补0.     结果为   

3<<3  =(2^4 *1 + 2^3 *1) =   (2^1+2^0) * 2^3   =  24          3*8 = 24

左移三位整体提高了2^3。

同理除法: 164/4 = 164>>2   164表示成2进制 整体右移两位  降低了2^2

位移运算要求:

左移运算<<  :在乘数或者被乘数在一方由2的整数次幂时  可以用<<n  来代替  *2^n

右移运算>> :在除数为2的整数次幂时 可以用>>n 来代替   / 2^n

 

位运算是一个种更接近机器底层的运算方式 ,所以位运算的性能远高于乘法除法。