0 is not a power of 2
Dominikus Dittes Scherkl via Digitalmars-d
digitalmars-d at puremagic.com
Thu May 21 07:53:01 PDT 2015
On Tuesday, 19 May 2015 at 20:46:09 UTC, Matthias Bentrup wrote:
> I think you can make the over/underflow at zero work in your
> favor:
>
> bool isPowerOf2(uint x)
> {
> return (x & -x) > (x - 1);
> }
The cool thing is that also the over/underflow of "-" at
0x8000_0000 works. But that is really a weird calculation!
Wouldn't pass any Polyspace or other code checker tool and need
some special comments on why it works...
More information about the Digitalmars-d
mailing list