Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.068 c
15-1267507011
Студент с горящими глазами
2010-03-02 08:16
2010.08.27
Вопрос по поводу вакансий


2-1273127792
Riply
2010-05-06 10:36
2010.08.27
Конвертация cpp-файла в obj, понятный для Delphi (RAD 2010)


4-1172734473
Darth Avenger
2007-03-01 10:34
2010.08.27
Купюроприемник CashCode, протокол ccnet


11-1221313480
DJ Vusal
2008-09-13 17:44
2010.08.27
Проблема OLE обращений из Delphi в Excel


2-1274166166
pro_xaoc
2010-05-18 11:02
2010.08.27
Загружать изображение при наведении и кликании мышью





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский