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




Для практической деятельности актуальна задача преобразования чисел представленных в одной системе счисления в другую (конвертирование). Задача состоит в представлении числа в требуемой СС с основанием 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 Метод “ цифра за цифрой”  

Метод “цифра за цифрой” предусматривает последовательное получение цифр кода конвертированного числа.

При этом для целого числа, а равно для целой части смешанного числа конвертирование выполняется с использованием операции деления, а для дробного числа (дробной части смешанного числа) с использованием операции умножения. Конверсия для каждой части имеет свои особенности, поэтому соответствующие алгоритмы целесообразно рассмотреть отдельно.

 
 

Метод “ цифра за цифрой “ для целого числа (деление “ лесенкой “)  

Преобразование целого числа или целой части смешанного числа. Требуется выполнить преобразование Xq → Xh. Исходное число заданое в СС с основанием q.Необходимо представить его в СС с основанием h.

Исходной целое число Xq в требуемой системе счисления с основанием h имеет вид

Xq = aN-1*h N-1+a N-2*h N-2+…+a0*h0 (2.1)

Очевидно, что при конвертировании число разрядов для представления исходного числа в новой системе счисления может измениться. Это нашло отражение в разложении 2.1, в котором N – новая разрядность целой части искомого числа (N ≠ n).

Задача конвертирования заключается в определении неизвестных пока полиномиальных коэффициентов aN-1, a N-2, … , a0. Этовыполняется путем деления исходного числа на основание требуемой системы счисления.

Деление Xqна h приводит к результату

(Xq):h = aN-1*h N-2+a N-2*hN-3+ …+a1 +(a0):h

Если обозначить полученное частное какy1, то результат деления можно записать как

Xq = y1*h + a0

Таким образом, младшая цифра искомого представленияXqв новой системе счисления − есть остаток от деления исходного числа на h. Если продолжить деление частного y1 наh, то получается результат

( y1):h = an-1*h n-3+a n-2*hn-4+ …+a2+(a1):h

в силу

y1= y2*h + a1

остаток от второго деления есть вторая цифра исходного числа в h системе счисления.

Таким образом, последовательное деление обеспечивает последовательное получение цифр исходного числа в новой системе счисления. ( “цифра за цифрой”)

Поэтому алгоритм преобразования целого числа методом “цифра за цифрой”. может быть сформулирован в следующем виде.

Число Xqделится на q тр по правилам деления системы с основанием q исх до получения остатка.

Если частное от деления - не нуль, то частное становится делимым и процесс деления на q тр продолжают.

Как только очередное частное станет равным нулю, либо станет меньше q тр -- процесс деления на q тр прекращается. Остаток, полученный при первом делении на q тр, представляет цифру разряда результата с весом q0 в требуемой системе счисления. Остаток от второго деления представляет цифру разряда результата с весом q1 и т. д. Последний остаток является старшей цифрой результата, имеющей вес qn-1 .

Пример 5. Представить десятичное число 45D в двоичной системе счисления. Целесообразно применить метод “цифра за цифрой” в варианте “деление лесенкой”


Таким образом, X10=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.

Второе. Преобразования необходимо выполнять по правилам исходной системы счисления, что не всегда удобно и привычно.

Третье. Область преимущественного использования метода для “ручных” преобразований – преобразование из десятичного представления числа в двоичное, а также в восьмеричное и в шестнадцатеричное.

Четвертое. Алгоритм хорошо формализован и, как следствие, эффективен не только для ручных преобразований, так и дляреализации на ЭВМ и МПТ.

Метод “ цифра за цифрой для правильной дроби (”последовательное умножение “)  

Перевод правильных дробей из системы счисления с основаниемq исх в систему с основанием q тр осуществляется так.

Как и при конвертировании целого числа, исходное число − правильная дробь, заданная в СС с основанием q исх.Необходимо представить ее в СС с основанием h. В требуемой системе счисления (основание – h) правильная дробь Xqявляется полиномом вида

Xq = a-1*h -1+a-2*h -2+… a-M+1*h M+1 + a-M*h M (2.2)

Очевидно, что при конвертировании число разрядов для представления исходного числа в новой системе счисления может измениться . Поэтому целесообразно вместо обозначенияm,применявшегося ранее в(2.2)обозначать новую разрядность как М (.M ≠ m).

Как и ранее, задача конвертирования заключается в определении неизвестных пока полиномиальных коэффициентов a-1, a -2, … , a-M.

Умножение полинома (1.4)на h позволяет получить произведение вида

Xq*h = a-1+a-2*h -1+… a-M+1*h M+2 + a-M*h M+1 = a-1+ z1

В полученном произведении содержится в виде целой части старшая цифра числа Xqи дробная часть z1. Если опять умножить правильную дробь z1 на основание h, то целая часть произведения дает следующую цифру числа в новой системе счисления и т.д. Правило перевода правильных дробей в новую систему счисления методом “цифра за цифрой” (“последовательное умножение”) формулируется следующим образом.

Дробь, соответствующая числу Xq, умножается на q тр по правилам умножения в системе с основанием q исх.

В полученном произведении отделяется целая часть, которая может быть равной нулю, а дробная часть снова умножается на q тр с последующим отделением целой части.

Эти операции повторяют

  1. либо до получения нулевой дробной части произведения,
  2. либо до получения необходимого количества разрядов числа Xq в новой системе счисления
  3. либо до достижения заданной точности преобразования.

. Старшая цифра результата перевода (то есть первая после запятой) совпадает с первой отделенной целой частью, вторая цифра результата — со второй отделенной целой частью и т. д.

Нулевая дробная часть произведения формируется лишь для небольшого числа преобразуемых чисел. Для таких чисел должен существовать конечный полином вида 1.2 в требуемой системе счисления. Преобразование такого типа иллюстрируется Примерами 10, 11.


Пример 10. . Преобразовать десятичное число 0,185D в двоичную систему счисления. Формализованная запись задания 0,185DXB.

Результат преобразования конечен и имеет вид 0,185D = 0,0011B

Пример 11.Преобразовать двоичную правильную дробь XB =0, 01011В в восьмеричную систему счисления. Формализованная запись задания 0,01011В → XQ.


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

Таким образом, 0,01011В = 0,26Q,

Наиболее вероятны случаи либо ограничения количества разрядов числа Xq в новой системе счисления, либо достижения заданной точности преобразования.

Для вычислительных систем как правила имеет место ограничение разрядной сетки для представления числа в новой системе счисления. Эти случаи иллюстрируются примерами 12,13.

 

Пример 12.Преобразовать дробное двоичное число X2=0,01011В в десятичную систему счислении. Дополнительные требования: полученное десятичное число должно содержать не более трех разрядов для представления мантиссы. Формализованная запись задания 0,01011В XD.


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

 

Таким образом, заданное двоичное число 0,01011B в десятичной системе счисления представляется приближенно, и равно 0,343D.

Следующий пример иллюстрирует то, что даже при бесконечной разрядной сетке преобразования могут не привести к конечному числу в новой системе счисления.

 

Пример 13.Преобразовать дробное десятичное число X2=0,1D в двоичную систему счисления. Формализованная запись задания 0,1D XB..


Как и при анализе методов конвертирования целых чисел необходимо выделить несколько основных свойств алгоритма “последовательное умножение”.

Первое. Алгоритм теоретически обеспечивает преобразование системы с любым основанием в заданную систему с любым основанием.

Второе. Преобразования необходимо выполнять по правилам исходной системы счисления, что не всегда удобно и привычно.

Третье. Область преимущественного использования метода для “ручных “ преобразований – преобразование из десятичного представления числа в двоичное.

Четвертое. Алгоритм хорошо формализован и эффективен для реализации на ЭВМ и МПТ.

Пятое. Конечных преобразований следует ожидать не всегда. Точность преобразований может быть ограничена длиной разрядной сетки для представления дробной части. Обычно перевод дробей из системы в систему производят приближенно.

Метод “ цифра за цифрой“ для смешанного числа  

При преобразовании смешанного числа его целая и дробная часть преобразуются соответственно методами “деления лесенкой“ и “последовательного умножения“. Далее из полученных целого и дробного чисел в новой системе счисления составляется (конкетенация) преобразованное смешанное число. Целая и дробная часть числа разделяются запятой.

2.4 Специфические преобразования в классе систем с основанием “ целая степень двойки“  

 
 

Такие преобразования на практике выполняются для систем, основания которых связаны соотношением

где R – целое число

Очевидно, что практический интерес представляют взаимные преобразования в двоичной, восьмеричной и шестнадцатеричной системах счислениях. Эти задачи рассматриваются в следующих разделах

...





Читайте также:
Основные понятия ботаника 5-6 класс: Экологические факторы делятся на 3 группы...
Обряды и обрядовый фольклор: составляли словесно-музыкальные, дра­матические, игровые, хореографические жанры, которые...
Экономика как подсистема общества: Может ли общество развиваться без экономики? Как побороть бедность и добиться...
Средневековье: основные этапы и закономерности развития: Эпоху Античности в Европе сменяет Средневековье. С чем связано...

Поиск по сайту

©2015-2022 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту:


Мы поможем в написании ваших работ!
Обратная связь
0.031 с.