Перевод чисел из одной системы счисления в другую.
Всякий раз, когда используется для вычислений система счисления, отличная от фактической, необходимо выполнить перевод 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,53141...2.
0,
53148
58
3
2774
5
1
6754
5
4
2634
51 6014 - 0,31810 => 2; 0,31810 = 0,01010...2.
0,
31810
2100
636
21
272
20
544
21
088
20 176 - 0,53148 => 10; 0,53148 = 0,674...10
0,
53148
128
1
5
2630
3146
57708
128
1
5
3760
7707
36608
128
1
3
7540
6604 6340
Всякий раз, когда используется для вычислений система счисления, отличная от фактической, необходимо выполнить перевод 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,53141...2.
0,
53148
58
3
2774
5
1
6754
5
4
2634
51 6014 - 0,31810 => 2; 0,31810 = 0,01010...2.
0,
31810
2100
636
21
272
20
544
21
088
20 176 - 0,53148 => 10; 0,53148 = 0,674...10
0,
53148
128
1
5
2630
3146
57708
128
1
5
3760
7707
36608
128
1
3
7540
6604 6340