|
Authored by: jesse on Wednesday, July 10 2013 @ 06:03 AM EDT |
Which is why you get a -0 on some platforms.
Ones compliment arithmetic requires a -0 and a +0.[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Wednesday, July 10 2013 @ 08:26 AM EDT |
Software IS math. Therefore ones complement's and floating point's +0 and -0 are
math. therefore in some maths 0 is signed.[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Wednesday, July 10 2013 @ 01:41 PM EDT |
This is not a hardware issue. If you wanted
a version of the integer type where -0 is distinct
from +0, and the hardware does not directly support this,
it is trivial to implement in software (trivial compared
to most compiler stuff, anyway).
The IEEE floating point standard and its predecessors
recognize the difference between -0.0 and +0.0 because
it helps for programming numerical calculations which
may underflow. Knowing which side you approached zero
from (MIN_FLOAT/-10.0 or MIN_FLOAT/10.0 for instance
will result in -0.0 and +0.0 respectively) gives a
strong hint to the algorithm about what to do next.
It may not have a conceptual meaning in the realm of
"real numbers" where zero is zero, always a positive
number, but this is computation, where you have to
adapt your abstraction to match the actual computation
model implemented by the hardware-plus-compiler-plus-
libraries-plus-algorithmic-oddities.
[ Reply to This | Parent | # ]
|
|
|
|
|