美文网首页
给定一个整数,返回大于此整数的最小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