odd behavior of ^

BlitzMax Forums/BlitzMax Programming/odd behavior of ^

I know I can use bit shifting but this is more readable (and easier :?)
flags :| (2 Shl (i + 1) )' flags :+ (2 ^ (i + 1) )
Anyone have any ideas why it outputs this
Because ^ and Exp() are floating point operations.

By the way you should never mix regular algebra with boolean algebra. They aren't directly interchangeable.