相关疑难解决方法(0)

设置的最低有效位的位置

我正在寻找一种有效的方法来确定在整数中设置的最低有效位的位置,例如对于0x0FF0,它将是4.

这是一个简单的实现:

unsigned GetLowestBitPos(unsigned value)
{
   assert(value != 0); // handled separately

   unsigned pos = 0;
   while (!(value & 1))
   {
      value >>= 1;
      ++pos;
   }
   return pos;
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何挤出一些周期?

(注意:这个问题适合喜欢这类事情的人,而不是人们告诉我xyzoptimization是邪恶的.)

[编辑] 感谢大家的想法!我也学到了其他一些东西.凉!

c c++ optimization bit-manipulation

111
推荐指数
10
解决办法
7万
查看次数

仅用1位设置检测整数的优化

我有一个功能:

inline uint32_t ShiftOf(uint32_t v)
{
    for (uint32_t s = 0; s < 32; ++s)
    {
        if (v == 1 << s)
            return s;
    }
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法优化它?

c++ optimization

12
推荐指数
3
解决办法
1370
查看次数

标签 统计

c++ ×2

optimization ×2

bit-manipulation ×1

c ×1