检查C

时间:2017-03-14 13:57:04

标签: c

我想检查一个无符号整数的前n位是否分别为1,是否有更好的方法,只是迭代这些位并一次检查每一位?

请参阅下面的我(强力)解决方案:

bool areFirstBitsTrue(uint32_t number, uint8_t bits)
{
    uint8_t i;
    if(bits > sizeof(number))
    {
        bits = sizeof(number);
    }

    for(i = 0; i < bits; ++i)
    {
        if(! ( (number>>i) & 1) )
        {
            return false;
        }
    }
    return true;
}

0 个答案:

没有答案