JAVA 中位运算的妙用

最近在看JDK源码的过程中发现,在源码的计算中有很多地方都用到了位运算符号。打算在此记录一下。并随时更新

x * 100 = (x << 6)+ (x << 5) + (x  >> 2) 
x / 10    =  (x * 52429) >>> (16+3) (PS 不太清楚为啥要写成16+3,直接写成 19 不好吗)
x * 10   =  (x << 3) + (x >> 1)

HashMap 中的 e.hash & oldCap

判断一个数字是否大于一个2的n次方幂
2^n &  x == 0
true x >= 2^(n +1)
false x < 2^(n+1)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容