int hammingWeight(uint32_t n)
{
    int TotalBits = 32;
    int i, weight = 0;
    for (i = 0; i < TotalBits; i++)
    {
        if (n &
            (UINT32_C(1)
             << i))  // if the bit on the ith position of 32 bit input is 1,
                     // then proceed Further note the use of UINT32_C to
                     // convert 1 to unsigned 32 bit int, as just 1 is treated
                     // as int which cannot be shifted left more than 30 times
            weight += 1;
    }
    return weight;
}

191