Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Преобразование чисел в различные системы счисления



Для практической деятельности актуальна задача преобразования чисел представленных в одной системе счисления в другую (конвертирование). Задача состоит в представлении числа в требуемой СС с основанием qтр, если оно задано в исходной системы СС с основанием qисх.

 
 

Для преобразований могут использоватьcя методы, перечисленные в следующей диаграмме.

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...