Тверской государственный университет
Опубликован: 02.10.2014 | Доступ: свободный | Студентов: 1798 / 183 | Длительность: 10:03:00
Лекция 8:

Из Q в P

< Лекция 1 || Лекция 8
Аннотация: Перевод числа из одной системы счисления в другую.

Смотреть на youtube || на ИНТУИТ в качестве: низком | среднем | высоком

Рассмотрим следующую задачу: дана запись числа N в системе с основанием Q, перевести его в систему с основанием P. Эту задачу мы умеем решать, когда P или Q равно 10. Если P равно 10, то это задача сборки десятичного числа по цифрам числа в системе Q. Задача решается простыми вычислениями. Например, требуется перевести число N = 1223 из троичной системы в десятичную.

N = 2 + 2*3 + 1*32 = 17

Задача разбора десятичного числа - перевода его в систему с основанием P сложнее.

Перевести число N = 3510 в троичную систему.

Для ее решения можно применять, как мы уже говорили два алгоритма.

В первом алгоритме начинаем поиск цифр числа, начиная со старшей цифры. В нашем примере (N = 35) максимальная степень числа 3, не превышающая N, равна 3 (33 = 27 < 35). Из этого сразу же следует, что число состоит из четырех цифр и старшая цифра равна 1. Поскольку оставшееся число 8 (35 -27) меньше следующей степени тройки (8 < 9), то следующая цифра равна нулю, а две оставшиеся цифры равны 2, и число N = 10223

Второй способ перевода классический. Он использует две замечательные операции – div и mod. Поиск начинается с младшей цифры, которая находится как остаток от деления числа на основание системы. Рассмотрим тот же пример:

35 div 3 = 11; 35 mod 3 = 2.

Младшая цифра равна 2.

Этот прием последовательно применяется, пока результат деления нацело не станет равным нулю:

11 div 3 = 3; 11 mod 3 = 2; 3 div 3 = 1; 3 mod 3 = 0; 1 div 3 = 0; 1 mod 3 = 1.

Результат: N = 10223

Первый способ предпочтительнее, если вы хорошо знаете степени системы счисления. Например, если число 244 нужно перевести в троичную систему, то, если помнить, что 243 это 35, то результат перевода выписывается мгновенно: всего цифр 6 – старшая 1, младшая 1, а остальные нули:

24410 = 1000013

Вернемся к исходной задаче перевода из системы P в систему Q, когда ни P, ни Q не равны 10.

Алгоритм понятен – следует воспользоваться десятичной системой, как промежуточной:

P => 10 => Q

Рассмотрим частично знакомый пример: Перевести число N = 1000013 в двоичную систему: 1000013 => 24410 => 111101002

Задачи для самостоятельной работы

  1. Число FDC16 запишите в десятичной системе;
  2. Число 25510 запишите в двоичной системе;
  3. Число 730 запишите в троичной системе. Используйте два алгоритма перевода, - начиная поиск со старшей цифры, и, начиная с младшей цифры.
  4. Число 2214 переведите в систему с основанием 2;
  5. Число 10118 переведите в системы с основанием 3;
  6. Число 2213 переведите в системы с основанием 4, 5, 8, 16;
  7. Число 101111012 переведите в системы с основанием 3, 5, 8, 16;
  8. Число FDC16 переведите в системы с основанием 2, 4, 6, 8;
  9. В двоичной системе счисления четные числа заканчиваются нулем, нечетные – единицей. Справедливо ли это утверждение для систем с основанием 3, 4, 5, 6?
  10. Возможно ли, чтобы число N в системах счисления с основаниями p и p+1 заканчивалось одной и той же цифрой? Если да, то приведите пример.
< Лекция 1 || Лекция 8
Дмитрий Анисимов
Дмитрий Анисимов

Подскажите - где публиковать решения самостоятельных заданий которые Вы задали 

Михаил Жуков
Михаил Жуков

Мне вот реально интересно, не проще было сказать сразу, что есть такая штука - "полином разложения", и привести формулу? Слишком много воды в теме о системах счисления имхо.