1. 程式人生 > >程式設計之美3:求二進位制數中1的個數

程式設計之美3:求二進位制數中1的個數

1:
int Count(BYTE v)
{
    int num = 0;
    while (v)
    {
        if (v % 2 == 1)
        {
            num++;
        }
        v = v / 2;
    }
    return num;
}
//-------------------------------
2: 位操作比除、餘操作效率高很多
int Count(BYTE v)
{
    int num = 0;
    while (v)
    {
        num += v & 0x01;
        v >>= 1;
    }
    return num;
}

//-------------------------------

3:複雜度至於“1”的個數有關
int Count(BYTE v)
{
    int num = 0;
    while (v)
    {
        v &= (v-1);
        num++;
    }
    return num;
}

原創:https://blog.csdn.net/ndzjx/article/details/84404352