Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика / Системы счисления.doc
Скачиваний:
47
Добавлен:
09.06.2015
Размер:
199.68 Кб
Скачать

2 1 0 –1 –2

2 1 0 –1

3.2. Перевод чисел из десятичной системы счисления в систему счисления с произвольным основанием

      1. Перевод целых чисел

Нам дано целое десятичное число A10. Перевести это число в систему счисления с основанием d означает, что надо найти коэффициенты an , an-1 ,…, a2 , a1 , a0 его представления в этой системе счисления. Согласно формуле (2), можно записать:

A10 = an d n + an-1 d n-1 + …+ a1 d 1 + a0 d 0 (3)

Учитывая, что d 0 = 1 и вынося основание за скобки, получим

A10 = (an d n-1 + an-1 d n-2 + …+ a1) d + a0 = A(1)10d + a0 (4)

Мы получили формулу деления с остатком. Таким образом, разделив A10 на основание d, мы получим новое частное A(1)10 и остаток a0, который является коэффициентом крайнего справа разряда искомого представления. Продолжим выносить основание за скобки.

A10 = ((an d n-2 + an-1 d n-3 + …+ a2) d + a1) d + a0 =

= ((… ((an d + an-1) d + …+ a2) d + a1) d + a0 (5)

Представление многочлена (3) в виде (5) называется схемой Горнера. Из этой рекуррентной формулы сразу вытекает следующее правило перевода целых чисел в другие системы:

Правило 1: Чтобы перевести целое десятичное число в систему счисления с основанием d необходимо последовательно делить это число и получаемые частные на основание d новой системы до тех пор, пока не получится частное меньше основания d. Последнее частное - старшая цифра числа в новой системе счисления с основанием d, а следующие за ней цифры - это остатки от деления, записываемые в последовательности, обратной их получению.

Задача 3. Перевести число 2510 в двоичную, восьмеричную и шестнадцатеричную системы счисления.

Решение.

а) переводим в двоичную систему:

25 : 2 = 12, остаток 1 .

12 : 2 = 6, остаток 0 .

6 : 2 = 3, остаток 0 .

3 : 2 = 1, остаток 1 .

Последнее частное = 1 и поэтому получаем (25)10 = (11001)2 .Остатки читаются снизу вверх.

Проверка:

(11001)2 = 124 + 123 + 022 + 021 + 1 = (25)10 .

б) переводим в восьмеричную систему:

25 : 8 = 3, остаток 1.

Последнее частное = 3 и поэтому (25)10 = (31)8 .

Проверка:

(31)8 = 381 + 1 = (25)10

в) переводим в шестнадцатеричную систему:

т.е. (25)10 = (19)16 .

Проверка:

(19)16 = 1161 + 9 = (25)10

      1. Перевод правильных дробей

Пусть мы имеем правильную (т.е. с нулевой целой частью) десятичную дробь В10. Перевести это число в систему счисления с основанием d означает, что надо найти коэффициенты b-1, b-2,…, b- m его представления в этой системе счисления. Согласно формуле (2), можно записать:

В10 = b-1 d -1 + b-2 d -2 + …+ b- m d - m (6)

Умножим левую часть на основание d , получим

d В10 = b-1 d 0 + b-2 d -1 + …+ b- m d m+1 (7)

Учитывая, что d 0 = 1 формула (7) является разложением нового числа В(1)10 по степеням основания :

d В10 = В(1)10 (b-1 , b-2 b-3b- m+1 )d (8)

Из (8) видно, что целая часть этого числа b-1 является первым коэффициентом крайнего слева разряда искомого представления. Таким образом мы получили следующее правило перевода правильных дробей:

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

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

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

Задача 4. Перевести десятичную дробь 0.3126 в двоичную систему счисления с точностью до 2-4 .

Решение.

- целая часть равна 0 .

- целая часть равна 1 .

- целая часть равна 0 .

- целая часть равна 1 .

Так как точность равна 2-4, то вычисления на этом заканчиваются.

Выписывая целые части в порядке появления, получаем (0.3126)10 = (0.0101)2 .

Задача 5. Десятичную дробь 0.6 перевести в восьмеричную систему счисления с точностью 8-5 .

Решение.

- целая часть равна 4 .

- целая часть равна 6 .

- целая часть равна 3 .

- целая часть равна 1 .

- целая часть равна 4 .

Таким образом (0.6)10 = (0.46314)8 .