Re[7]: 42 битное число!!
От: Andrew S Россия http://alchemy-lab.com
Дата: 01.07.04 12:39
Оценка:
AS>>Распределение вещественных чисел, представляемых флоат (да и любым числом с плавающей точкой) на множестве вещественных чисел, неравномерно. Наиболее плотно числа представлены (отбросив знак) в районе единицы, далее, ближе к границам диапазона — значительно более разрежено. Т.е. далеко не все целые числа из диапазона флоата можно с точностью до +-0.5 им представить.
T>Наиболее плотно — в районе нуля

С чего это? Флоат хранится в нормализованом виде с неявной единицой.

AS>>Более того. Общее количество (вещественных) чисел, представляемых float, составляет примерно (точно я не помню) 2^25 + 1.

T>Больше. Намного больше. Чуть меньше 2^32 (меньше из-за того, что некоторые числа имеют неоднозначное представление, но таких чисел очень мало).

Да, верно. Имелся ввиду диапазон точного представления целых чисел.

AS>>Общее количество (вещественных) чисел, представляемых double, состоявляет 2^53 + 1,

T>Тоже ошибаешься. Порядка 2^64. Как и следовало ожидать.

Аналогично предыдущему.

AS>>т.е. им представить 42 битное число с некоторой осторожностью можно (при этом, очевидно, от операции инкремента в виде прибавления единички к значению придется отказаться, придумав нечто другое, что не изменяло бы значения порядка, а только мантиссы).

T>Осторожность никогда не повредит, но в данном случае можно смело пользоваться double. При условии, что используются только +-*= и значение не вылазиет за 2^52.


AS>>В общем — правильнее и быстрее использовать вложеный цикл на long, если компилер не поддерживает 64-х битные целые.

T>Правильнее? Наверное да. Быстрее? Сомниваюсь. Все зависит от задачи и "внутренностей" цикла.

Быстрее — однозначно. По производительности будет не сильно ниже, чем с int64.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.