int ClearHighestBitSet (unsigned int n)
{
    double x;
    int exp;
    x = frexp((double)n, &exp);
    return n ^ (1 << (exp-1))
}

To see how it works, look up the standard C++ function frexp.

Dave




On Jul 23, 10:15 am, Tech Id <[email protected]> wrote:
> Write a C function that unsets the leftmost set bit of an integer in
> less than order (n)
> n here is 32 (bit-length of an integer)
> Hint: do some bit-tricks

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to