fzort: Ah, thank you for the explanation :)
I was just about to note that expanding on my previous estimation, a slightly better one would be:
r = (x >> 1) - (x >> 2) - (x >> 3) + (x >> 6)
And then of course I could perhaps expand on the (x >> 6) in a similar fashion to get an even more accurate result.
Anyways... kind of an interesting problem.