Аннотация
Иваница С.В., Кулибаба С.В., Аноприенко А.Я. Преобразователь вещественных
чисел с регулируемой точностью.
Представлена программа-конвертор вещественных
чисел в базовые позиционные системы счисления (2, 10, 16 с/с) с регулируемой точностью
формирования дробной части преобразованного числа. Описаны расширенная
функциональность конвертора и особенности реализации используемых алгоритмов
перевода длинных чисел из одной с/с в другую без использования регистров процессора
Введение
В связи с бурным развитием вычислительных технологий, а также с ежедневно
повышающимися требованиями к точности вычислений, возникает необходимость
оперировать числами с большим классом точности. При разработке программного
обеспечения для высокоточных вычислительных систем, программист во время отладки
программного кода вынужден анализировать промежуточные результаты, представленные в
виде набора машинных слов. Поскольку машинное слово является по сути двоичным
числом, то часто возникает ситуация когда для человеческого восприятия нужно двоичное
число представить в более компактном 16-ричном виде или вообще в виде «человеческого»
десятичного числа [1]. Оказавшись в такой ситуации, программист спешит обзавестись
набором программных инструментов, в числе которых обязательно присутствует программа,
позволяющая выполнять переводы чисел в различные системы счисления.
В данном докладе представлена программа-конвертор, являющаяся, по мнению
разработчиков (собственно, авторов доклада), претендентом на «продвинутость» по
отношению к аналогичным программам других разработчиков.
К вопросу актуальности создания программы-конвертора
Идея создания данного программного продукта берет свое начало в целом цикле
исследований, подтверждающих эффективность перехода к постбинарным форматам чисел с
плавающей запятой [2–4], в ходе работы над которыми стояли задачи взаимообратного
перевода десятичных дробей в двоичные с возможностью получения вещественных чисел
высокой точности (вплоть до 10000 значащих цифр после запятой).
Прежде чем приступить к созданию собственного программного продукта, была
предпринята попытка поиска уже готовой программы, предназначенной для
конвертирования дробных чисел с необходимой точностью. Однако среди множества
рассмотренных программ-конверторов не было ни одного полнофункционального,
позволяющего задавать точность преобразованного числа. Большинство рассмотренных
программ вообще не работали с дробными числами. Из числа тех программных продуктов,
которые все-таки справились с конвертированием дробных чисел, можно отметить,
например, программу «.:DOS:. Перевод чисел» [5] и онлайн-сервисы: «Система счисления
онлайн» [6], «Wolfram Alpha» [7]. Но вопрос точности получаемых после конвертирования
дробей оставался по-прежнему открытым.
При этом следует отметить, что онлайн-сервис Wolfram Alpha, оставил конкурентов
далеко позади, порадовав возможностью представления двоичной дроби с точностью до 2066
символов. Однако данная процедура требует от пользователя терпения, поскольку из-за
отсутствия выбора точности конвертирования результат выводится порциями и для
получения новой порции (опция «Показать больше цифр») приходится каждый раз
обновлять результат. При этом полученный результат представлен в виде графического
файла, и чтобы его использовать как число, необходимо дополнительно подключать сервисы
распознавания текста.
Кроме того, ни одна из рассмотренных авторами программ-конверторов не учитывала
особенности перевода вещественных чисел, заключающиеся в том, что большинство
вещественных чисел невозможно представить в различных системах счисления одинаково
точно. Поэтому, возникает необходимость преднамеренного учета погрешности при
переходе между десятичной и двоичной системами счисления. Для более точной проверки
результата необходимо иметь возможность выбора количества значащих символов после
запятой.
Таким образом, созданная авторами собственная программа-конвертор (
bin-dec-hex
fractional number converter
) лишена указанных выше недостатков и фактически способна
работать с вещественными числами любой длины (установленный предел в 10 000 цифр
можно расширять по мере необходимости).
Особенности работы и возможности
программы bin-dec-hex fractional number converter
На рис. 1 представлен интерфейс программы bin-dec-hex fractional number converter
(далее b-d-h converter) при конвертировании числа в двоичную дробь с точностью 5 000
двоичных цифр
Рисунок 1 - Интерфейс программы bin-dec-hex converter в режиме представления числа (16 значащих цифр) в 2 с/с с точностью 5 000 двоичных разрядов
В качестве особенностей программы b-d-h converter можно выделить следующие:
Кроссплатформенность. Обеспечивается тем, что данная программа написана на
языке java, виртуальная машина которой позволяет запускать приложения как в ОС
Windows, так и в *nix-подобных систем.
Дружественный интерфейс. В связи с ростом планшетных компьютеров и
сенсорных экранов, приветствуется наличие экранной клавиатуры, т. к. не всегда
стандартная экранная клавиатура является удобной в использовании. Также, основные
функции программы продублированы в комбинациях клавиш для быстрого вызова.
Регулируемая точность преобразования. Пользователю предоставляется
возможность самому вручную выбрать точность преобразования чисел (количество цифр
после запятой) от 0 (только целая часть числа) до 10 000. Точность числа по умолчанию —
1 000 цифр.
Ведение истории конвертирования с возможностью сохранения в файле. После
каждой операции, в поле «История операций» добавляются следующие строки: исходное
число, направление конвертирования, результат преобразования.
Загрузка исходного числа из файла. Не всегда удобно вводить числа большой
длины вручную, особенно, когда они являются результатами вычислений. В таком случае, их
удобнее записать в файл. Программа позволяет загрузить такой файл в поле ввода числа.
Мультиязычный интерфейс. Программа способна «общаться» с пользователями на
русском, украинском, английском и немецком языках.
Непохожесть программы b-d-h converter на аналогичные конверторы простирается
дальше ее функционала и касается также алгоритмического базиса. Прежде всего, программа
не использует математические возможности микропроцессора, поскольку микропроцессор
не способен производить настолько точные вычисления. Все данные программа
представляет в виде строк символов, и производит необходимые преобразования, используя
механизмы посимвольной обработки. Такие процедуры реализуют программную математику
(т. е. все математические операции выполняются как операции над текстовыми строками),
скорость вычисления которой ниже вычислений с аппаратной поддержкой. Однако при
работе даже с максимально длинными числами, время конвертирования не превышает 2–3
секунд (в строке статуса программы реализован счетчик времени выполнения текущей
операции, значения которого также сохраняются в истории).
Выводы
В последнее время наблюдается рост количества специалистов компьютерных наук и
технологий. Поэтому в вузах все большее число студентов компьютерных специальностей
начинают изучение компьютерных наук с основ информатики, где они непременно
сталкиваются с представлением вещественного числа в различных системах счисления. В
этом случае программа b-d-h converter может выступить не только в качестве рабочего
инструмента для программистов или инженеров компьютерных систем, а и в качестве
тренажера для студентов. Авторы предполагают скорое появление данного конвертора на
портале компьютерного моделирования ДонНТУ [8], доступного для свободного
использования. Сейчас b-d-h converter расположен на персональном сайте одного из
авторов [9].
В заключении следует отметить, что, несмотря на скрупулезный поиск аналогов
разработанного конвертора, способных на здоровую конкуренцию, — таковых не нашлось,
мнение об уникальности и единственности в своем роде этой программы все-таки остается
субъективным. Ведь охватить весь объем подобного программного обеспечения не
представляется возможным. Поэтому авторы обращаются с призывом сообщать по
электронной почте (адреса в заголовке) сведения о программах-конверторах или онлайн-сервисах,
обладающих не меньшими возможностями, чем представленная программа b-d-h
converter.
Список литературы
1. Фомин С.В. Системы счисления. / С.В. Фомин — 5-е изд. — М.: Наука. Гл. ред.
физ.-мат. лит., 1987. — 48 с.
2. Аноприенко А.Я. Особенности представления постбинарных вещественых чисел в
контексте интервальных вычислений и развития аппаратного обеспечения средств
компьютерного моделирования. / А.Я. Аноприенко, С.В. Иваница, С.В. Кулибаба //
Материалы четвертой международной научно-технической конференции «Моделирование и
компьютерная графика» 5–8 октября 2011 года, Донецк, ДонНТУ, 2011. C. 13–19.
3. Аноприенко А.Я. Постбинарный компьютинг и интервальные вычисления в
контексте кодо-логической эволюции. / А.Я. Аноприенко, С.В. Иваница — Донецк, ДонНТУ,
УНИТЕХ, 2011. — 248 с.
4. Аноприенко А.Я. Представление постбинарных форматов чисел с плавающей
запятой в контексте интервальных вычислений. / А.Я. Аноприенко, С.В. Иваница,
С.В. Кулибаба // Наукові праці Донецького національного технічного університету, серія
«Інформатика, кібернетика та обчислювальна техніка»,вып. 14 (188). — Донецк, ДонНТУ,
2011. — С. 55–60.
5. Программа для перевода чисел из одной системы счисления в другую с
выведением перевода по шагам. [Электронный ресурс] — Режим доступа:
http://pascalstudy.narod.ru/loading/opred.zip.
6. Перевод чисел в двоичную, шестнадцатеричную, десятичную, восьмеричную
системы счисления online. [Электронный ресурс] — Режим доступа:
http://math.semestr.ru/inf/index.php.
7. Wolfram Alpha: Computational Knowledge. [Электронный ресурс] — Режим доступа:
http://www.wolframalpha.com.
8. Портал компьютерного моделирования ДонНТУ. [Электронный ресурс] — Режим
доступа: http://sim.donntu.ru/.
9. Bin-dec-hex конвертер дробных чисел. [Электронный ресурс] — Режим доступа:
http://kulibaba.net/project/bin-dec-hex_fractional_number_convertor.