>>>Hi all,
>>>
>>>Problem is I need to do do something as a multipple of the bits set on an integer, the integer is a bit array to store statii.
>>>
>>>I need to figure out how many bits are set on an integer.
>>>
>>>I know I can loop / iterate through the number and bittest / divide by 2 etc.
>>>
>>>for now there are not to much so I can do with an ICASE, but I like it generic :)
>>>
>>>Any ideas for a fast solution? Something mathematical?
>>>
>>>Lutz
>>
>>If it is a positive integer, the number of bits is related to the base-2 logarithm. You may need to experiment a bit; but I think the number of binary digits is something like: ceiling(log2(number)). Of course, Visual FoxPro doesn't have a log2() function, but that can be solved easily as ceiling(log(number) / log(2))
>
>0xC0 and 0x03 have the same number of bits set. Where does log2 come in ?
Sorry, I misunderstood the question.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)