Is there a signed zero Integer in Java?

2019-02-27 19:55发布

问题:

I've learned that floating point number s have a signed zero in java. But I'm afraid Integer has not:

new Integer("0").equals(new Integer("-0")) // true

vs.

new Double("0").equals(new Double("-0")) // false

How could I store a sign with my zero Integer value?

回答1:

You cannot store a sign with Java integer primitive type.

Negative zero is an artifact of IEEE-754 representation, which stores a sign in a separate bit. Integers, on the other hand, are stored in two's complement representation, which has a unique representation for zero.