All these numbers we are pushing on the stack are integers (
Int32 or
Int64 where there is an overflow chance). right?
There is no negative zero defined for integers! The negative zero in IEEE 754 is defined for floating point numbers (
float and
decimal)!
So what
these lines are doing with [0, 0, 0, 0x80] is actually interpreting a completely different value (-2147483648) as so called negative zero by mistake.
What am I missing here?