博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ConcurrentHashMap中的2的n次方幂上舍入方法(转)
阅读量:5994 次
发布时间:2019-06-20

本文共 527 字,大约阅读时间需要 1 分钟。

 

最近看JDK中的concurrentHashMap类的源码,其中有那么一个函数:

/**     * Returns a power of two table size for the given desired capacity.     * See Hackers Delight, sec 3.2     */    private static final int tableSizeFor(int c) { int n = c - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1; }

看不明白这是做什么的,但是后来我查看了《hackers delight》(中译:高效程序的奥秘)这本书,才知道这个函数是用来计算c的上舍入到2的n次幂。书上的函数如下图:

已经把《hackers delight》加入书单。

http://www.cnblogs.com/katsura/p/4134737.html

 

你可能感兴趣的文章
Odoo进销存(采购、销售、仓库)入门教程 - 下
查看>>
解读Nodejs多核处理模块cluster
查看>>
Android程序调试
查看>>
python之模块colorsys颜色转换模块 暂不了解
查看>>
Python logging模块详解
查看>>
shell grep 高亮
查看>>
select count(*)和select count(1)的区别
查看>>
***XAMPP:报错 Unable to load dynamic library的解决方法
查看>>
《Java程序设计》 课程教学
查看>>
2014百度之星第三题Xor Sum(字典树+异或运算)
查看>>
Eclipse设置不格式化注释
查看>>
Android IOS WebRTC 音视频开发总结(五六)-- 如何测试网络性能?
查看>>
FAQ系列 | 监控平均SQL响应时长
查看>>
Codevs 3728 联合权值
查看>>
Caffe学习系列(15):计算图片数据的均值
查看>>
【Spring】Spring学习笔记-01-入门级实例
查看>>
C#:文件、路径(Path_File)
查看>>
EditTex属性
查看>>
影响计划的若干种种
查看>>
用 Navicat 写mysql的游标
查看>>