Арифметические основы
Перевод чисел из одной системы счисления в другую.
Всякий раз, когда используется для вычислений система счисления, отличная от фактической, необходимо выполнить перевод 10 => p, p => 10.
Есть системы, дающие значительно более высокие скорости, но и требующие большего количества оборудования.
Этот перевод может быть выполнен:
- вручную,
- на ЭВМ (с помощью специальных программ).
Во всех этих случаях принципиально используется различные подход и методы. В связи с тем, что нам придется готовить информацию для программы вручную, мы рассмотрим, прежде всего, методы, направленные на ручной перевод.
Итак, имеем дело с позиционной системой счисления с основанием " p ", с естественными весами разрядов.
В качестве промежуточной используется, естественно, десятичная система. Вначале число переводится из системы " p " в 10-ую, затем из 10-ой в систему с нужным основанием.
Мы отступим от этого правила и воспользуемся алгоритмом непосредственного перевода из системы с основанием " p " в систему с основанием " q ".
Обычно произвольное число, содержащее целую и дробную части, переводят по частям: вначале целую, затем дробную часть.
Рассмотрим перевод целых чисел:
Перевод осуществляется по следующему правилу: исходное число, записанное в системе с основанием " p " и его частные последовательно делятся на число " q ", представленное в системе " p ". Деление производится в системе с основанием " p " и продолжается до получения результата, меньшего " q ". Первый остаток, меньший " q ", дает старшую цифру числа Nq. Остатки от деления дают остальные цифры числа Nq.
Пример:
-
3110 => 2; 3110 = 111112
-
318 => 3; 318 = 2213 = 2*32 + 2*31 + 1*30 = 18 + 6 + 1 = 2510.
-
318 => 10; 318 = 2510.
-
1111112 => 10; 1111112 = 6310.
Перевод дробных чисел из системы с основанием " p " в систему с основанием " q " выполняется по следующему правилу: исходное число Dp последовательно умножается на число " q ", записанное в системе " p ". Целые части получаемых произведений дают " p "-ые записи " q "-х цифр, начиная со старшей. Умножение производится в системе с основанием " p " до получения необходимой точности.
Пример:
- 0,53148 => 5; 0,53148 = 0,3141...5.
- 0,31810 => 2; 0,31810 = 0,01010...2.
- 0,53148 => 10; 0,53148 = 0,674...10