Разминка для мозгов: странная программа
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Имеется следующая программа:
Для чего она предназначена? Как можно назвать результаты вычислений (1) и (2).
Предполагаю, что в
(2)
будет 308, поскольку, если бы вС++
существовали переменные, которые не имели бы ограничения( от -бесконечности до +бесконечности ) то, рак бы на горе свистнул быстрее, чем данный цикл закончился. Но в нашем любимом языке есть такая штука, какinf
, типdouble
принимает это значение(это значение, или это просто так объектcout
выводит?), когда кол-во нулей в числе больше308
(ну, по крайней мере, на моей машине это так, хотя типdouble
везде одинаков, ведь так?). А если число с 308ю нулями умножить ещё на 10( как это делается в цикле), то оно всё равно примет значениеinf
, поэтому, когдаc
достигаетinf
, на следующей итерацииc0
тоже становитсяinf
, а так как от умноженияc
на 10 значение не поменяется(оно же имеет значениеinf
), то цикл завершит свою работу.Не знаю зачем это надо, я вижу только одно применение — цикл в 309 итераций :)
Я так понимаю, программа предназначена для определения значащих цифр и максимального значения порядка типа double.
Первое вычисление это минимальное количество значащих цифр, а второе — максимальное значение порядка.
Всё правильно ))
Это программа для исследования типов с плавающей точкой.
Если в
#define DTYPE double
вместоdouble
подставить другой тип, напримерlong double
, то будет выведено количество значащих цифр и максимальное значение порядка для типаlong double
.Эта программка мне понадобилась при исследовании типа
long double
в TDM-GCC, поскольку в документации ничего внятного я не нашёл ((