Информатика и информационные системы в экономике. Ч.1. Ракитина Е.А - 44 стр.

UptoLike

Рассмотренные способы перевода чисел из одной системы счисления в другую хорошо отражают
принцип позиционности, но далеко не самые удачные для представления их в виде строго формализо-
ванного алгоритма. Известно несколько способов перевода чисел. Некоторые из них более удобны для
"ручного" перевода, другие специально разработаны для их автоматического исполнения. Далее приве-
дены основные алгоритмы перевода целых и дробных чисел для различных систем счисления.
Алгоритмы для перевода целых числе
Постановка задачи. Дано число А
q
системе счисления с основанием q). Заменить его равным
числом Х
р
(в системе счисления с основанием р).
Алгоритм I. Для того, чтобы целое число А
q
заменить равным ему целым числом Х
р
, необходимо
число А
q
разделить нацело по правилам q-арифметики на основание р. Остаток деления запомнить, а
частное вновь нацело разделить на р. И так далее, пока частное не станет равно 0.
Цифрами искомого числа Х
р
являются остатки от деления, выписанные так, что последний остаток
является цифрой старшего разряда числа Х
р
.
Алгоритм II пригоден для любых р и q, однако рекомендуется для перевода чисел из десятичной
системы счисления в произвольную систему счисления.
Пример
26
10
--> Х
2
q = 10, p = 2
26
10
= 11010
2
26
10
--> Х
3
q = 10, p = 3
26
10
= 222
3
26
10
--> Х
16
q = 10, p = 16
26
10
= 1A
16
Алгоритм II. Для того чтобы данное целое число А
q
заменить равным ему числом Xр, достаточно
цифру старшего разряда числа А
q
умножить по правилу р-арифметики на основание q. К полученному
произведению прибавить цифру следующего разряда числа А
q
Полученную сумму вновь умножить на q
по правилам р-арифметики, вновь к полученному произведению прибавить цифру следующего (более
младшего) разряда. И так до тех пор, пока не будет прибавлена младшая цифра числа А
q
.
Алгоритм II пригоден для любых р и q, однако рекомендуется при переводе из произвольной сис-
темы счисления в десятичную.
Пример
10110
2
--> X
10
(((1*2+0)*2+1)*2+1)*2+0
= 22
10
2) 5) 11) 22
207
8
--> X
10
(2*8+0)*8+7 =
135
10
16) 135
2F5
16
--> X
10
(2*16+15)*16+5
=
= 757
10
47) 757
Алгоритмы для перевода правильных дробей