9°

java 的 移位运算, 实现 乘法与除法

在实际 开发中,其实很少 使用 移位运算。

特别是 还用 移位运算 实现 高性能的 乘法与除法。

虽然知道,但是还是有点蒙,或者说 不知道应该怎么用

除法 >>

        int a = 10;
		int c = a >> 1;
		System.out.println("c:" + c);
		// 向低位移动一位,相当于 除以 2的 1次方
		System.out.println(a >>= 1); //写法 和  a>>1 是一样的
   结果都是 5 </code></pre> 

看移位的值了 ,比如   a >>2 也就是 将 a 除2 再 除2 , 也就是 a 除以4 的商。 也就是 2的 2次方。

 

同理 乘法也是差不多

乘法 <<

 a<<=1;// 向高位移动一位,相当于乘以 2 的1次方 

 

使用

比如说  求 a/2 的 商

或者说是  乘数或者除数 是固定值

 

参考

https://www.cnblogs.com/chuijingjing/p/9405598.html

https://blog.csdn.net/fu_zhongyuan/article/details/88666262

https://blog.csdn.net/wanqian11k/article/details/79090478

 

 

 

 

本文由【之渊】发布于开源中国,原文链接:https://my.oschina.net/u/2419285/blog/3073416

全部评论: 0

    我有话说: