Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.061 c
15-1266044160
AlexDan
2010-02-13 09:56
2010.08.27
Спрятать php файл


3-1241681644
abhtr
2009-05-07 11:34
2010.08.27
Нужна срочная помошь!!!


2-1275046068
Крапивин Олег
2010-05-28 15:27
2010.08.27
Как очистить DBLookComboBox.Text


15-1271018237
Кто б сомневался
2010-04-12 00:37
2010.08.27
Структурный файл в php


2-1271921806
Эренка
2010-04-22 11:36
2010.08.27
Ошибка деления на ноль, комплексные функции