Главная страница
    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.061 c
2-1267290282
котэ
2010-02-27 20:04
2010.08.27
Работа с реестром Windows


15-1269253044
Правильный$Вася
2010-03-22 13:17
2010.08.27
автоматический перевод часов в системе


2-1270400826
lamer6666
2010-04-04 21:07
2010.08.27
Потоки и POST


15-1273350599
Юрий
2010-05-09 00:29
2010.08.27
С днем рождения ! 9 мая 2010 воскресенье


2-1271311609
Den
2010-04-15 10:06
2010.08.27
InstallShield диалоги





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский