18 февр. 2013 г.

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


Перевод целых чисел.
Пусть целое число N задано в система счисления с основанием Р и требуется его перевести в систему с основанием Q.


Запись N в Q – ичной системе имеет вид
 N = bs *Qs+ bs-1*Qs-1+ . . . + b0*Q0
Для определения b0 разделим обе части на Q, причем в левой части деление выполняется по правилам Р – ичной арифметики, получим
  N/Q = bsQs-1 + bs-1Qs-2 + . . . + b1 +b0 /Q
Левую часть можно представить как сумму целой и дробной части
N/Q = [N/Q]+ {N/Q}
Приравнивая целые и дробные части получим
 [N/Q] = bsQs-1 + bs-1Qs-2 + . . . + b1 
{N/Q} = b0/Q 
Þ b0 = Q{b0/Q}
Указанные действия на самом деле не выполняются, так как b
0 является просто остатком от деления N на Q.
Далее положим
N1 = [N/Q]  = bsQs-1 + bs-1Qs-2 + . . . + b1
N1 будет целым числом и можно применить ту же самую процедуру для определения b1.
Таким образом, при условии что N
0 = N, перевод чисел с использованием Р – ичной арифметики осуществляется по следующим рекуррентным формулам:
bi = Q{Ni/Q} – остаток от деления Ni на Q;
N
i+1 = [Ni/Q] – целая часть от деления Ni на Q, i = 0, 1, 2, …
Процесс продолжается до тех пор, пока не будет получено N
i+1 = 0.
Пример 3.
Перевести число N = 4710 в двоичную систему с использованием десятичной арифметики.
Решение.
При делении выделяют целую часть результата и остаток. Остаток записываю в скобках рядом с целой частью.
Применим рекуррентные формулы  при Q = 2
47: 2 = 23(1); 23: 2 = 11(1); 11: 2 = 5(1); 5: 2 = 2(1); 2: 2 = 1(0); 1: 2 = 0(1)
Ответ: 47
10 = 1011112.
Пример 4.
Перевести число N = 3060 в 16 - ичную систему с использованием десятичной арифметики.
Решение.3060: 16 = 191(4); 191: 16 =11(15); 11: 16 = 0 (11).
Ответ.3060
10 = bf416

Комментариев нет:

Отправить комментарий