Re: portable way to get highest bit set?
jak <[email protected]> Wed, 11 Oct 2023 22:26:05 +0200
| Newsgroups | comp.lang.c,alt.comp.lang.c |
|---|---|
| Organization | A noiseless patient Spider |
| Message-ID | <[email protected]> |
candycanearter07 ha scritto:
> Hi,
>
> What is the best/most portable way to get the highest bit set?
>
> ie. 011010001
> to 010000000
Hi,
I don't think it's the best but the most portable could be the
mathematical approach:
#include <stdio.h>
#include <math.h>
int main()
{
unsigned long val = 3000, ret;
ret = (unsigned long)pow(2., (double)(unsigned
long)(log((double)val) / log(2.)));
printf("%lu -> %lu", val, ret);
return 0;
}