воскресенье, 3 апреля 2011 г.

Асимметрия

Вопрос:
Может ли функция Math.abs(int) вернуть отрицательное число?

Ответ:
Как же хочется написать "нет", улыбнуться и подумать, что я всех обманул таким вопросом. На самом деле может. Так уж повелось, что отрицательных чисел больше, чем положительных. Так уж повелось, что если byte, то диапазон -128..127, ну и так далее с увеличением количества байт на хранение. К чему это приводит?
int minValue = Integer.MIN_VALUE;
int abs = Math.abs(minValue);
System.out.println(abs);
Закрываем, трясём, смотрим (©):
> -2147483648

1 комментарий: