| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Double.PositiveInfinity |
| Автор: Idsa 11.4.2007, 18:12 | ||
Я решил посмотреть, как в Double реализованы бесконечности... и вот на что наткнулся в рефлекторе:
Т. е., по всей видимости, для double каким-то интересным образом переопределена операция деления. Однако в рефлекторе ничего подобного я не нашел. Так как же все-таки реализовывается деление на ноль для double? |
| Автор: Void 11.4.2007, 18:25 |
| Формат IEEE 754 для чисел с плавающей точкой определяет специальные значения, такие как бесконечность и NaN (Not a Number). Результатом деления на ноль является именно бесконечность. |
| Автор: Idsa 11.4.2007, 18:30 |
| Void, это все понятно... но я спрашивал именно о реализации. |
| Автор: Void 11.4.2007, 18:37 | ||
Реализации чего? Так оно работает на аппаратном уровне. И от языка это не зависит.
|
| Автор: Idsa 11.4.2007, 18:53 |
| Понятненько |
| Автор: mr.DUDA 11.4.2007, 20:51 |
| В принципе, можно и напрямую загружать во флоат значение +INF (как в книге по Ассемблеру тов. Юрьева), но это потребовало бы кастовать 4-байтный int в 4-байтный float, а сие действие нельзя выполнить без unsafe. Кроме того, мало ли как на конкретной платформе реально выглядит INF (например в XBox360), и к тому же вдруг это изменится в будущем... |