Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизFloatToBin Найти похожие ветки
← →
зашел спросить (2010-04-22 15:16) [0]Подскажите, по какому алгоритму выполняется сабжевое преобразование?
Заранее благодарен за ответ.
← →
MBo © (2010-04-22 15:17) [1]А что такое FloatToBin ?
← →
12 © (2010-04-22 15:21) [2]http://www.tspu.tula.ru/ivt/old_site/umr/timoi/solovieva/Computer/chisl_vpl.htm
← →
зашел спросить (2010-04-22 16:04) [3]
> А что такое FloatToBin ?
это предполагаемая функция преобразования числа с плавающей точкой из десятичной системы в двоичную.
Мне известно, как преобразовать целое десятичное в двоичное - делением в столбик на 2.
Мне также известно, как вручную преобразовать двоичное с плавающей точкой в десятичное с плавающей точкой, например:
101.1101 = 1*2^2+0*2^1+1*2^0+1*2^(-1)+1*2^(-2)+0*2(-3)+1*2^(-4)
а вот как обратно преобразовать, например 5.127 в двоичную, пока не могу придумать.
> 12 © (22.04.10 15:21) [2]
спасибо за ссылку.
На что обратить внимание?
← →
12 © (2010-04-22 16:19) [4]http://www.tspu.tula.ru/ivt/old_site/umr/timoi/solovieva/SS/perevod_drob.htm
← →
зашел спросить (2010-04-22 16:34) [5]
> 12 © (22.04.10 16:19) [4]
это уже ближе, но несовсем понятно это утверждение:
пока дробная часть произведения не станет равной нулю (бывает, что сколько раз не умножай - она не станет равной нулю)или не будет достигнута требуемая точность представления числа в новой системе счисления(а тут на каждой итерации производить расчеты и точность страдает);
какие еще будут варианты?
← →
MBo © (2010-04-22 16:46) [6]>как обратно преобразовать, например 5.127 в двоичную
Не преобразовать, а представить в строковом бинарном представлении.
Для этого достаточно привести к целому типу такого же размера (Integer для Single, Int64 для Double), и использовать функции типа IntToBin
пример:
IntegerVar := PInteger(@SingleVar)^;
← →
зашел спросить (2010-04-22 17:17) [7]
> MBo © (22.04.10 16:46) [6]
а запятую в каком месте ставить?
← →
Jeer © (2010-04-22 17:27) [8]
> какие еще будут варианты?
Начать думать.
← →
MBo © (2010-04-22 17:42) [9]>а запятую в каком месте ставить?
То, что я предложил - даст "сырое" представление.
Если нужно "с запятой", то гуглить IEEE 754 для изучения внутреннего устройства вещественных чисел.
← →
Jeer © (2010-04-22 17:59) [10]
> а вот как обратно преобразовать, например 5.127 в двоичную,
>
Похоже ему надо "прямое" преобразование - то, что "видно".
Сетка с фиксированной точкой.
В этом случае отдельно преобразуется целая часть (сетка определяется значением числа), отдельно дробная часть ( сетка задается ).
Затем отдельные строковые представления "стыкуются", если надо вставлятся знак точки.
И то и то преобразования тривиальны.
← →
зашел спросить (2010-04-22 18:01) [11]
> Начать думать.
Предлагайте.
← →
Игорь Шевченко © (2010-04-22 18:32) [12]
> Предлагайте.
Это было предложение
← →
зашел спросить (2010-04-22 18:54) [13]Всем спасибо за советы.
Особенно тем, кто отвечал по делу:)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.057 c