hashmap(高位右移16位 一)
本来只是想网上复习一下hashmap的面试题,然后看到别人讲计算hash的时候把key的hash值高位无符号右移16位 再异或运算 是为了减少哈希碰撞 ,以前从没想过是为啥 就去查了一大堆 网页瞬间满了 断断续续看了一下午 有点头绪了 但为啥是16位 whynot 32位 ,以前学的补码 反码 位运算 都快忘光了 在九章算法上看别人的视频讲的还挺好的 当年助教老师一整堂课也没讲明白到底是啥玩意,四个黑板写的密密麻麻的 唉 还有那时候学C语言 是我们学院的老院长 六七十岁了 在我们开学前暑假自学的谭浩强C语言教材,愣是给我们讲了一学期 ,每次坐在机房听着老头儿一字一句地的念课本 由衷的敬佩 啥叫敬业呀 这才叫干一行爱一行。
题外话:网上很多讲源码的 话说大家为什么在讲同一个东西的时候 名称五花八门啊(苦笑) 可能有些是直译过来的 但还是喜欢通俗的叫法 ==
----------------------------------
md 人家一共就32位 好家伙 你来个32位右移 哥们儿说就是为了低位掺杂高位特性 反正就是这样更均匀,,,我说为啥 就没别的办法么 非得这样 他不想搭理我了 因为我觉得 就这么回答 面试官肯定以为这人搁这糊弄鬼呢....