From the MySQL manual:
BIT_COUNT(N)
Returns the number of bits that are set in the argument N.
-------
I thought that meant that it returned the number of bits which
needed to be set in order to store the value. To store 2^32 you
need 33 bits of storage, with only one bit /set/. I expected 33
instead of 1.
#tested on 5.0.45 and 5.1.32-community mysql> select i, pow(2,i), bit_count(pow(2,i)) from pow2; +----+------------+---------------------+ | i | pow(2,i) | bit_count(pow(2,i)) | +----+------------+---------------------+ | 1 | 2 | 1 | | 2 | 4 | 1 | | 3 | 8 | 1 | | 4 | 16 | 1 | | 5 | 32 | 1 | | 6 | 64 | 1 | | 7 | 128 | 1 | | 8 | 256 | 1 | | 9 | 512 | …[Read more]