Well, of course there is, but you're not going to like it.
You could, of course, build a lookup table with all the correct values in it:
table[1] = 1, table[2] = 1, table[3] = 2, etc.
So, this would give you a really fast answer, but it's a completely useless solution by itself, since the table would have to be very, very large.
You could optimize this a bit, but it requires just a little iteration. Simply create an 8-bit version of the table solution, a mere 256-entry table, then iterate over each BYTE in the value to be checked, summing the results of the table lookup. Something like:
short int tableLookup[256] = { 0, 1, 1, 2, 1, ... };
unsigned int valueToCheck = 89392491;
int result = 0;
while ( valueToCheck != 0 ) {
result += tableLookup[ (valueToCheck & 0xFF) ];
valueToCheck >>= 8;
}
// result should now have the correct bit count, if the table is correct.
Hmm, seems this is well known (and here I was doing this off the top of my head):
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetNaive