Есть ли целое число со знаком в Java?

Я узнал, что число с плавающей точкой s имеет подписанный ноль в Java. Но я боюсь Integer не имеет:

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

против

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

Как я могу хранить знак с моим нулем Integer значение?

1 ответ

Решение

Вы не можете хранить знак с целочисленным примитивным типом Java.

Отрицательный ноль - это артефакт представления IEEE-754, в котором знак хранится в отдельном бите. Целые числа, с другой стороны, хранятся в двоичном представлении дополнения, которое имеет уникальное представление для нуля.

Другие вопросы по тегам