Java基础之 位移运算(另类的乘除法)
从上图可以看出 8 3 4 2 之间一定存在某种关系; 由下图来解释位移运算
在计算机的世界中 数字全部以二进制进行存储
3<<3 大于小于号箭头所指的方向 就是位移的方向
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
位运算是一个种更接近机器底层的运算方式 ,所以位运算的性能远高于乘法除法。