Читайте также:
|
|
Рассмотрим перевод десятичных чисел в системы счисления с другими основаниями. Подойдем к этой проблеме с общей математической позиции.
Сначала получим правила перевода целого числа. Обозначим целое число через Х. Основание системы счисления, в которую будем переводить, обозначим p. В результате перевода получится (n+1)- разрядное число. Запишем это следующим образом:
Здесь α0 обозначает цифру нулевого разряда числа, α1 – цифру первого разряда и т.д. Значения этих цифр лежат в диапазоне от 0 до р-1. Запишем значение числа в системе p в развернутом виде и преобразуем к скобочной форме.
=
Отсюда нетрудно понять, что α0 равно остатку от целочисленного деления Х на р, а Х1 – частное от целочисленного деления Х на р. Применяя символику языка Паскаль, запишем: α0=X mod p, X1=X div p. Здесь div – знак операции целого деления, а mod – остатка от деления. Таким образом, найдена α0 - цифра нулевого разряда числа в p-ичной системе.
Теперь запишем число Х1 в скобочной форме:
По аналогии с предыдущим следует, что α1=X1 mod p – остаток от деления Х1 на р; X2=X1 div p. Найден α1 - первый разряд искомого числа.
Продолжая далее целочисленные деления на р с выделением остатка, последовательно будем получать искомые цифры р -ичного числа. Процесс закончится, когда в результате деления нацело (div) получится ноль. Последний остаток будет равен αn – старшей цифре числа.
Задача 1. Перевести число 58 в троичную систему счисления.
Перевод производим путем последовательных делений на 3. После знака равенства записывается целая часть частного, а в скобках указывается остаток.
58: 3 = 19 (1)
19: 3 = 6 (1)
6: 3 = 2 (0)
2: 3 = 0 (2)
Окончательный результат такой: 58=20113. Это равенство мы уже получали в предыдущем параграфе.
Теперь рассмотрим перевод десятичной дроби в систему счисления с основанием р. Пусть Y – дробное десятичное число: Y<1. Очевидно, что в системе с основание р оно также будет дробным числом, поскольку 1 в любой системе счисления обозначает одну и ту же величину. Число, равное Y в системе р, запишем в развернутой форме.
Умножим это равенство на р:
Отсюда видно, что α-1 – это целая часть произведения Y·p, а Y1 – дробная часть этого произведения. Далее выпишем Y1 и умножим его на р:
Теперь α-2 стало целой частью произведения Y1·p. Очевидно, что дальше нужно умножать на р значение Y2. Выделив его целую часть, получим третью цифру дробного числа - α-3. И так далее.
До каких же пор продолжать этот процесс? Тут могут быть разные ситуации. Первая ситуация: после некоторого числа умножений в дробной части произведения получится ноль. Понятно, что дальше будут все нули. Следовательно, переведенное значение имеет конечное число цифр. Рассмотрим пример такого перевода.
Задача 2. Перевести десятичную дробь 0,625 в двоичную систему счисления.
Будем последовательно умножать это число на 2, выделяя целую часть произведения:
0,625·2 = 1,25 0,25·2 = 0,5 0,5·2 = 1,0 | 1 – первая цифра 0 – вторая цифра 1 – третья цифра Дальше нули |
В итоге получили: 0,625 = 0,1012
Вторая ситуация – получение периодической дробной части. В таком случае последовательные умножения надо продолжать до выделения периода.
Задача 3. Перевести число 0,246 в пятеричную систему счисления.
0,246·5=1,23 0,23·5=1,15 0,15·5=0,75 0,75·5=3,75 0,75·5=3,75 |
Далее пойдет периодическое повторение цифры 3. Результат получился таким:
0,246=0,110(3)5.
Из математики вам должно быть известно, что число с конечной или периодической десятичной дробной частью является рациональным числом. Можно доказать, что любое дробное рациональное десятичное число при переводе в другую систему счисления также дает рациональное число. Попробуйте доказать это самостоятельно!
Чаще всего при переводе десятичной дроби в другую систему счисления получают приближенный результат с заданной точностью. Например, требуется перевести число 0,21 в восьмеричную систему счисления с точностью до 7 цифр. Выполняется перевод числа до 8 цифр после запятой: 0,21=0,15341217…8. Затем производится округление до 7-й цифры: 0,21≈0,15341228. Заметим, что в этом случае к последней цифре нужно прибавлять единицу, если первая отбрасываемая цифра ≥4, т.к. 8/2=4.
Если требуется перевести смешанное десятичное число, то отдельно переводится целая часть числа путем последовательных делений и дробная часть путем умножений. Затем два эти результата записываются через запятую одним смешанным числом.
Практическое задание №2
Выполнить перевод следующих десятичных чисел в другие системы счисления:
А) 2134→X5; 2134→X2; 2134→X16
Б) 0,12→X5; 0,12→X2; 0,12→X16 (дробные числа переводить с сохранением 5 цифр после запятой)
Дата добавления: 2015-08-10; просмотров: 125 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Схема Горнера и перевод чисел | | | Смешанные системы счисления |