Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Для практической деятельности актуальна задача преобразования чисел представленных в одной системе счисления в другую (конвертирование). Задача состоит в представлении числа в требуемой СС с основанием qтр, если оно задано в исходной системы СС с основанием qисх.
2.1 Метод непосредственного замещения |
Алгоритм преобразования методом непосредственного замещения имеет вид.
1. Число заданное в исходной системе счисления с основанием qисх, представляется в виде суммы полиномов (1.1) и (1.2). При этом используются цифры исходной системы.
2. Все цифры и числа, используемые в полученном полиноме заменяются их представлениями в новой СС.
3. Выполняются соответствующие операции по правилам новой СС. К таким операциям относятся – возведение в степень оснований, умножение полученных степеней на цифры и сложение полученных произведений.
4. Полученная сумма – число в новой системе счисления.
При конвертировании из двоичной в десятичную систему преобразования обычно начинают со второго этапа.
Эффективность метода непосредственного преобразования зависит от соотношения оснований исходной и требуемой систем. В основном он применяется, причем начиная со второго этапа, при преобразованиях из двоичной в десятичную систему счисления.
Особенно эффективен при “ручных” преобразованиях малоразрядных целых, реже дробных чисел.
2.2 Преобразования по схеме Горнера |
.Применение схемы Горнера обеспечивает значительное ускорение процедур конвертации. Рассматриваемый метод является частным случаем метода непосредственного замещения, рассмотренного ранее. Конвертация как в методе непосредственного замещения в обеспечивается за счет замещения (этапы 1-2 алгоритма непосредственного замещения). Однако дальнейшие операции ускоряются за счет замены операций возведения в степень операциями последовательного умножения (деления) по схеме Горнера.
Алгоритм метода имеет вид
1. Число заданное в исходной системе счисления с основанием qисх, представляется в виде суммы полиномов (1.1)и (1.2). При этом используются цифры исходной системы.
2. Все цифры и числа, используемые в полученном полиноме заменяются их представлениями в новой СС. Числами (цифрами) в новой системе счисления представляются коды цифр, оснований и степеней оснований в старой системе.
3. Дальнейшие преобразования целой и дробной части выполняются раздельно и сводятся к вычислениям по следующим схемам Горнера
3.1 для целой части
X =(… (an-1*qТР +an-2)* qТР +an-3) * qТР+an-4)* qТР +…+a1)* qТР +a0
Для вычислений требуется (n-1) умножений и сложений.
3.2 для дробной части
X =(… (a-m/qТР +a -m+1)/ qТР + a -m+2)/ qТР+ a -m+3)/ qТР +…+a-1) / qТР
Для вычислений требуется m умножений и сложений.
Этапы 1,2 могут выполняться «в уме», а вычисления начинаться с этапа 3.
Коротко останавливаясь на достоинствах метода необходимо отметить следующее. Метод хорошо формализован, поэтому удобно реализуется средствами вычислительной техники с использованием циклических алгоритмов. Недостатки связаны с необходимостью замещения кодов цифр, оснований и степеней в старой системе их эквивалентами в новой системе счисления. В основном применяется, при преобразованиях из двоичной в десятичную систему счисления.
Особенно эффективен при “ручных” преобразованиях малоразрядных целых, реже дробных чисел. Разрядность преобразуемых чисел может быть больше, чем в методе непосредственного замещения.
2.3 Метод “ цифра за цифрой” |
Метод “цифра за цифрой” предусматривает последовательное получение цифр кода конвертированного числа.
При этом для целого числа, а равно для целой части смешанного числа конвертирование выполняется с использованием операции деления, а для дробного числа (дробной части смешанного числа) с использованием операции умножения. Конверсия для каждой части имеет свои особенности, поэтому соответствующие алгоритмы целесообразно рассмотреть отдельно.
Метод “ цифра за цифрой “ для целого числа (деление “ лесенкой “) |
Преобразование целого числа или целой части смешанного числа. Требуется выполнить преобразование X q → X h. Исходное число заданое в СС с основанием q. Необходимо представить его в СС с основанием h.
Исходной целое число Xq в требуемой системе счисления с основанием h имеет вид
X q = a N-1 *h N-1 +a N-2 * h N-2 +…+a 0*h0 (2.1)
Очевидно, что при конвертировании число разрядов для представления исходного числа в новой системе счисления может измениться. Это нашло отражение в разложении 2.1, в котором N – новая разрядность целой части искомого числа (N ≠ n).
Задача конвертирования заключается в определении неизвестных пока полиномиальных коэффициентов a N-1, a N-2, …, a 0. Этовыполняется путем деления исходного числа на основание требуемой системы счисления.
Деление X q на h приводит к результату
(X q):h = a N-1 *h N-2 +a N-2 * h N-3 + …+a 1 + (a 0) :h
Если обозначить полученное частное как y1, то результат деления можно записать как
X q = y1*h + a 0
Таким образом, младшая цифра искомого представления Xq в новой системе счисления − есть остаток от деления исходного числа на h. Если продолжить деление частного y1 наh, то получается результат
( y1):h = a n-1 *h n-3 +a n-2 * h n-4 + …+a 2 + (a1) :h
в силу
y1= y2*h + a1
остаток от второго деления есть вторая цифра исходного числа в h системе счисления.
Таким образом, последовательное деление обеспечивает последовательное получение цифр исходного числа в новой системе счисления. (“цифра за цифрой”)
Поэтому алгоритм преобразования целого числа методом “цифра за цифрой”. может быть сформулирован в следующем виде.
Число X q делится на q тр по правилам деления системы с основанием q исх до получения остатка.
Если частное от деления - не нуль, то частное становится делимым и процесс деления на q тр продолжают.
Как только очередное частное станет равным нулю, либо станет меньше q тр -- процесс деления на q тр прекращается. Остаток, полученный при первом делении на q тр, представляет цифру разряда результата с весом q 0 в требуемой системе счисления. Остаток от второго деления представляет цифру разряда результата с весом q 1 и т. д. Последний остаток является старшей цифрой результата, имеющей вес qn-1 .
Пример 5. Представить десятичное число 45D в двоичной системе счисления. Целесообразно применить метод “цифра за цифрой” в варианте “деление лесенкой”
Таким образом, X 10=4510 =101101B
Проведенный аналитический анализ позволяет сделать вывод об универсальном характере метода к соотношению оснований исходной и заданной систем.
Пример 6. Преобразовать двоичное число 110111В в восьмеричную систему счисления. Формализованная запись задания 110111В → XQ.
Основание“новой” восьмеричной системы счисления − 8Q=1000В
Деление “лесенкой” выполняется по правилам двоичной (исходной) системы счисления.
Таким образом, исходное двоичное число 110111В в восьмеричной системе счисления запишется как 67Q.
Пример 7. Преобразовать двоичное число 110111В в десятичную систему счисления. Формализованная запись задания 110111В → XD.
Применяется “ деление лесенкой” целой части заданного числа на основание новой системы счисления записанное в виде двоичного целого − 10D =1010В
Таким образом, заданное числе в десятичной системе счисления представляется как 110111B = 55D.
Пример 8.. Преобразовать десятичное число 155D в шестнадцатеричную систему счисления. Формализованная запись задания 155D → XH.
Применяется “ деление лесенкой” целой части заданного числа на основание новой системы счисления записанное в виде десятичного целого − 10H =16D.
Заданное число 155D в шестнадцатеричной системе счисления представляется как 9BH.
Пример 9.. Преобразовать десятичное число 155D в восьмеричную систему счисления. Формализованная запись задания 155D → XQ.
Применяется “ деление лесенкой заданного числа на основание новой системы счисления − 10Q =8D.
Заданное число 155D в восьмеричной системе счисления запишется как 233Q.
Целесообразно отметить несколько свойств и особенностей алгоритма “деление лесенкой”.
Первое. Алгоритм теоретически обеспечивает преобразование из системы с любым основанием в заданную систему с любым основанием. Это свойство иллюстрируется примерами 3-9.
Второе. Преобразования необходимо выполнять по правилам исходной системы счисления, что не всегда удобно и привычно.
Третье. Область преимущественного использования метода для “ручных” преобразований – преобразование из десятичного представления числа в двоичное, а также в восьмеричное и в шестнадцатеричное.
Дата публикования: 2015-04-10; Прочитано: 876 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!