Re: portable way to get highest bit set?

Ben Bacarisse <[email protected]> Thu, 12 Oct 2023 10:50:53 +0100
Newsgroups comp.lang.c,alt.comp.lang.c
Organization A noiseless patient Spider
Message-ID <[email protected]>
jak <[email protected]> writes:

> Ben Bacarisse ha scritto:
>> jak <[email protected]> writes:
>> 
>>> 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;
>> Test case: val = 0xFFFFFFFFFFFFFFFF
>
> This is due to the approximation of the floating point:

I know the reason.  I was just pointing out that you need to at least
test the boundary cases!

-- 
Ben.