| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Integer.toString(int) |
| Автор: EnJ 14.2.2010, 22:52 | ||
| Добрый вечер(утро...). Изучая язык, полез в стандарные классы, смотреть как они реализованы и наткнулся на метод toString класса Integer:
Интересуют 2-я и 3-я строки: зачем эта проверка нижней границы диапазона типа? Почему нет такой же для верхней границы? Заранее пасиб |
| Автор: jk1 14.2.2010, 23:34 | ||
Затем, что метод static void getChars(int i, int index, char[] buf) используемый в приведенной реализации падает, если i == Integer.MIN_VALUE. Чтобы избежать этого, этот крайний случай обрабатывается отдельно. Что касается верхней границы типа, то она обрабатывается корректно, поэтому в обходе нет необходимости. |
| Автор: Vasay 14.2.2010, 23:37 |
| EnJ, А подумай |
| Автор: EnJ 15.2.2010, 18:32 |
| Хм... диапазон интов от -2147483648 до 2147483647 (2 в 31 степени). Минимальное значение по модулю больше на единицу. Тогда возникает вопрос, почему раелизовали такое минимальное значение, а максимальное другое? Какие-то технические ограниечения? |
| Автор: jk1 15.2.2010, 19:22 | ||
http://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4_(%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0) Внизу статьи, в списке недостатков, содержится ответ и на ваш первоначальный вопрос. |