Jam*_*B41 2 binary bit-manipulation objective-c
我有一个5位整数,我正在使用.Objective-C中是否有一个本机函数可以让我知道哪个位是最左边的?
即我有01001,它将返回8或位置.
谢谢
这实际上与计算前导0的数量相同.有些CPU有这方面的指令,否则你可以使用Hacker's Delight中的技巧.
它也相当于向下舍入到最接近2的幂,再次你可以在Hacker's Delight中找到有效的方法,例如
uint8_t flp2(uint8_t x)
{
    x = x | (x >> 1);
    x = x | (x >> 2);
    x = x | (x >> 4);
    return x - (x >> 1);
}
另见:2的先前力量