I'm having problems with left bit shifts in Java returning incorrect values...
Take 108 << 60 for instance. The answer should be*:
124515522497539473408
Java is returning this value
-4611686018427387904
for this statement:
System.out.println(108L << 60L);
Why??? Both values are forced longs... so I see no reason why any bit values should be truncated. What am I missing here?
*Citation: Wolfram Alpha