Числа в разных системах счисления можно представить следующим образом:
А(S)=anSn+ an-1Sn-1+…+ a1S1+ a0S0 + a-1S-1 +…+ a-mSm=bkRk+ bk-1Rk-1+…+b1R1+ b0R0+ b-1R-1+…+ b-lRl=A(R)
Поэтому в общем виде задача перевода чисел из системы счисления с основаниеи S в систему счисления с основанием R представляет собой либо задачу определения коэффициентов bi по правилам S-арифметики, либо задачу вычисления А(R) по правилам R-арифметики, исходя из того, что известны aj. и Sj .
Правило перевода целых чисел на основании S-арифметики
Исходное число А(S), разделить на R по правилам S-арифметики, Полученное частное принять за исходное число и вновь разделить на R. Процесс деления очередного частного продолжать до тех пор, пока не бу дет получено частное меньше R . Изображение числа а(S) в R-системе счисления получают записью остатков от деления в порядке, обратном порядку их получения.
Правило перевода целых чисел на основании R-арифметики
Самую старшую цифру an в изображении числа а(S) умножить на S по правилам R-арифметики. Добавить следующую цифру an-1 и вновь умножить на S. Умножение и сложение выполнять до тех пор, пока не будет добавлена самая младшая цифра a0 . Полученное число будет представлять собой A(R) .
Правило перевода дробных чисел на основании S-арифметики
Исходное число A(S) умножить на R по правилам S-арифметики. Целая часть полученного числа представляет собой цифру b-1 числа А(R) . Затем, отбросив целую часть, умножить дробную часть на R . При этом получается число, целая часть которого есть цифра b-2 . Повторять процесс умножения l раз, пока не будут найдены все l цифр числа A(R).
Правило перевода дробных чисел на основании R -арифметики
Самую младшую цифру в am в изображении числа A(S) разделить на S по правилам R-арифметики. Добавить следующую цифру a-(m-1) вновь разделить на S. Сложение и деление выполнять до тех пор, пока не будет добавлена самая старшая цифра a-1. Последнее число, полученное делением, представляет собой число A(R)
При переводе правильных дробей из одной системы счисления в другую может быть получена дробь в виде бесконечного ряда. Поэтому при переводе дроби указывают либо количество разрядов числа в новой системе счисления, либо погрешность перевода.
Если требуемая абсолютная погрешность перевода равна X , то количество разрядов f определяют по формуле
|
f=]logR |
1 |
[ |
|
X |
где ] [ означает округление до большего целого.
Для перевода смешанных чисел из одной системы счисления в другую необходим раздельный перевод целой и дробной частей по правилам, описанным ранее.
Табличные методы перевода
Первый табличный метод заключается в том, что имеются таблицы эквивалентов в каждой системе счисления для цифр этих систем и степеней основания (весов разрядов); задача перевода сводится к тому, что в выражение
А(S)=anSn+ an-1Sn-1+…+ a1S1+ a0S0 + a-1S-1 +…+ a-mSm
для исходной системы счисления надо поставить эквиваленты из новой системы для всех цифр и степеней основания и произвести соответствующие действия по правилам R-арифметики. Полученный результат этих действий будет изображать число в новой системе счисления.
Во многих практических применениях вычислительных устройств требуется перевод из S-системы счисления в R-систему и наоборот. При использовании рассмотренного табличного метода необходимо иметь таблицы эквивалентов для S-и R-систем счисления и аппаратуру для выполнения арифметических операций в этих системах, что является неэффективным.
Второй табличный метод позволяет осуществлять перевод чисел из R-системы счисления в S-систему, т.е. обратный перевод, используя эквиваленты S-системы и R -арифметику.
Исходное число A(R) сравнить с эквивалентами чисел Sn, 2Sn; 3Sn,..., (S-1)Sn . Если A(R), меньше всех этих эквивалентов, то аn = 0, и перейти к сравнению с эквивалентами чисел Sп-1,2 Sn-1, 3Sn-1, .... (S -1)Sn-1. Если gSn<A(R)<(g+1) Sn (где g = 1, 2,... S-2), то an = g, образовать разность r= A(R)-gSn и перейти к сравнение остатка r. с очередными эквивалентами. Аналогично определяются все остальные коэффициенты aj .
Следует отметить, что данный метод перевода, основанный на сравнении эквивалентов с исходным числом, а впоследствии с остатками, является единственным при переводе чисел на основании S-арифметики в системы счисления с искусственным порядком весов.
Использование промежуточной системы счисления.
Этот метод применяют при переводе из десятичной системы в двоичную и наоборот. В качестве промежуточной системы счисления используют систему с основанием 2х ( К =• 2, 3...). При переводе из десятичной системы вначале осуществляют перевод в промежуточную систему счисления любым из описанных ранее методов, а затем вместо 2 -х цифр подставляют двоичные эквиваленты.
Для перевода из двоичной в десятичную систему вначале разбивают двоичный код на группы по К разрядов и каждую группу заменяют соответствующей 2k -й цифрой, затем переходят от промежуточной к десятичной системе счисления любым из методов.
В качестве промежуточной широко используются восьмеричная и шестнадцатеричная системы.