小编Bre*_*Cox的帖子

在 C 中仅使用按位运算符计算 log 的下限?(x)

对于家庭作业,使用 C,我应该制作一个程序,该程序仅使用运算符来查找大于 0 的数字的对数基数 2 ! ~ & ^ | + << >>。我知道我应该向右移动多次,但我不知道如何在没有任何循环或ifs 的情况下跟踪次数。我已经被这个问题困住了好几天,所以任何帮助表示赞赏。

int ilog2(int x) {
    x = x | (x >> 1);
    x = x | (x >> 2);
    x = x | (x >> 4);
    x = x | (x >> 8);
    x = x | (x >> 16);
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止。我将最重要的部分传递到最后。

c bit-manipulation logarithm

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

bit-manipulation ×1

c ×1

logarithm ×1