Главная страница
    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
Время: 1.059 c
2-1269669606
NBAH1990
2010-03-27 09:00
2010.08.27
Помогите разобраться с компонентом TsListView


2-1270652923
Vincero
2010-04-07 19:08
2010.08.27
Отловить состояние клавиши [Shift] при нажатии на пункт PopupMenu


2-1270195945
Lowlander
2010-04-02 12:12
2010.08.27
Маска ввода email


4-1233902268
svl42
2009-02-06 09:37
2010.08.27
Копирование файлов из Recycler Bin


2-1268233756
Учащийся
2010-03-10 18:09
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский