I Chose No Name <MUDaholic@AOL.COM> writes:
> okay, i just need a lil help here :)
> i need to convert a (1 >> 7) [which is 128] into
> 7...but i have like a variable 128 that i got from
> 1 >> 7, and i need to convert it back into 7...any help?
Assuming you have a number of the form (1 << n):
int
first_bit(unsigned int v)
{
int i;
for (i = 0; i < 32; i++)
if (v & (1 << i)) return i;
return -1;
}
Basically what you're wanting to do is take the base 2 logarithm of a
number of the form 2^n. The above is the easiest way, bit if you have
something like (1 << 4) | (1 << 2), then it will return 2.
--
James Turner turnerjh@pattern.net UIN: 1102038
http://www.vuse.vanderbilt.edu/~turnerjh/
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST