I want to check if the first n bits of a unsigned integer number are respectively 1 in C. Is there a better way than just iterating over the bits and checking each at a time?
See my (brute force) solution below:
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;
}
