美文网首页
给定一个整数,返回大于此整数的最小2的冥次数

给定一个整数,返回大于此整数的最小2的冥次数

作者: zhuangzi | 来源:发表于2018-06-08 13:06 被阅读0次

    给定一个整数,返回大于等于此整数的最小2的冥次数,如cap=10,则返回16。

    int MAX_CAPACITY = 1<<30;
    
    int tableSizeFor(int cap) {
    
        int n = cap -1;//如果不减1,会出现cap等于2的冥次数时返回此冥次数x2,比如cap=8,返回16
    
        n |= n >>>1;
    
        n |= n >>>2;
    
        n |= n >>>4;
    
        n |= n >>>8;
    
        n |= n >>>16;
    
        return (n <0) ?1 : (n >=MAX_ CAPACITY) ?MAX_ CAPACITY : n +1;
    
    }
    

    相关文章

      网友评论

          本文标题:给定一个整数,返回大于此整数的最小2的冥次数

          本文链接:https://www.haomeiwen.com/subject/ncxasftx.html