美文网首页
算法:求小于一个数字的二进制的最高位

算法:求小于一个数字的二进制的最高位

作者: Source_Chang | 来源:发表于2020-10-27 00:22 被阅读0次

位运算移位法
C++:

int max2m(int number) {
    
    int result = number;
    result |= (result >> 1);
    result |= (result >> 2);
    result |= (result >> 4);
    result |= (result >> 8);
    result |= (result >> 16);
    
    // 2 的 n 次幂 = 2 的 0 次幂 + ... 2 的 n - 1 次幂再加 1
    return result + 1;
}

参考

相关文章

网友评论

      本文标题:算法:求小于一个数字的二进制的最高位

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