THe problem statement asks "Given that the expression ~0 produces an integer that contains all 1s, write a functioncalled int_size that returns the number of bits contained in an int on your

particular machine."

The solution is:

Code:int int_size (void) { unsigned int bits; int size = 0; bits = ~0; while ( bits ) { ++size; bits >>= 1; } return size; }

Is the while loop saying while (bits=1)?

If so, I don't understand why bits has to equal one for the size to increase.