Изменение системы счисления

Теги: Система счисления, перевод системы счисления, родственные системы счисления



Изменение основания для позиционных систем счисления

В позиционной системе счисления с основанием q число может быть представлено в виде полинома

… + a2∙q2+ a1q1 + a0∙q0 + a-1∙q-1 + a-2∙q-2 + …

где коэффициенты ai – это цифры системы счисления с основанием q.

Например, в десятичной системе счисления

124.733 = 1∙102 + 2∙101 + 4∙100 + 7∙10-1 + 3∙10-2 + 3∙10-3

Число цифр в системе счисления с основанием q равно q, при этом максимальная цифра равна q - 1. Цифра не может стать равной q, потому что в этом случае произойдёт перенос единицы в новый разряд.

Например, нужно найти минимальное основание системы счисления, в которой записано число 7832. Так как максимальная цифра равна 8, то минимальное значение q = 8 + 1 = 9.

Основанием системы счисления может быть, в принципе, любой число: целое, отрицательное, рациональное, иррациональное, комплексное и т.д. Будем рассматривать только положительные целые основания.

Особый интерес для нас будут представлять основание 2 и основания, являющиеся степенью двойки – 8 и 16.

В случае, если основание с. с. больше десяти, то новые цифры берутся по порядку из алфавита. Например, для 16-ричной системы это будут цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Перевод целой части десятичной системы счисления

Первый способ перевода из десятичной системы счисления в n-ричную заключается в последовательном делении числа на новое основание.

12310 → X12

123/12 = 10 (3)
10/12 = 0 (10=A)

Собираем в обратном порядке, сначала последнее значение (это 0), потом сверху вниз все остатки. Получаем 0A3 = A3

456310 → X8

4563/8 = 570 (3)
570/8 = 71 (2)
71/8 = 8 (7)
8/8 = 1 (0)

Собираем обратно, получаем 10723

334910 → X16

3349/16 = 209 (5)
209/16 = 13 (1)
13/16 = 0 (13 = D)

Собираем вместе: 0D15 = D15

54510 → X2

545/2 = 272 (1)
272/2 = 136 (0)
136/2 = 68 (0)
68/2 = 34 (0)
34/2 = 17 (0)
17/2 = 8 (1)
8/2 = 4 (0)
4/2 = 2(0)
2/2 = 1 (0)
1/2 = 0(1)

Собираем 01000100001 = 1000100001

Перевод на бумаге обычно осуществляется делением в столбик. Пока деление не приведёт к нулю, каждый следующий ответ делится на основание с. с. В конце, из остатков от деления собирается ответ.

Перевод из десятичной системы счисления в двоичную на бумаге
Перевод из десятичной системы счисления в двоичную на бумаге

Также часто можно перевести число в другую с. с. , если в уме представить его как сумму степеней соответствующего основания, в которое мы хотим перевести число.

Например, 129 очевидно 128 + 1 = 27 + 1 = 100000012

80 = 81 - 1 = 34 - 1 = 10000 - 1 = 22223

Перевод в десятичную систему счисления целой части

Перевод осуществляется, используя представление числа в позиционной системе счисления. Пусть необходимо перевести A312 → X10 Известно, что A3 – это 3∙q0 + A∙q1, то есть 3*1 + A*12 = 3 + 120 = 123

107238 → X10

1∙q4 + 0∙q3 + 7∙q2 + 2∙q1 + 3∙q0 = 1∙84 + 0 + 7∙82 + 2∙8 + 3 = 1∙4096 + 7∙64 + 2∙8 + 3 = 4563

D1516 → X10

D∙162 + 1∙161+5∙160 = 13∙256 + 16 + 5 = 3349

10001000012 → X10

29 + 25 + 1 = 512 + 32 + 1 = 545.

Перевод на бумаге обычно осуществляется следующим образом. Над каждой цифрой по порядку пишут номер степени. Затем уже выписывают все слагаемые.

Перевод из шестеричной системы счисления в десятичную на бумаге
Перевод из шестеричной системы счисления в десятичную на бумаге

Перевод дробной части из десятичной системы

Во время перевода дробной части часто случается ситуация, когда конечная десятичная дробь превращается в бесконечную. Поэтому обычно при переводе указывается точность, с которой необходимо переводить. Перевод осуществляется путём последовательного умножения дробной части на основание системы счисления. Целая часть при этом откидывается и входит в состав дроби.

0.62510 → X2

0.625 * 2 = 1.250 (1)
0.25 * 2 = 0.5 (0)
0.5 * 2 = 1.0 (1)

0 – дальнейшее умножение будет давать только нули
Собираем сверху вниз, получаем 0.101

0.310 → X2
0.3 * 2 = 0.6 (0)
0.6 * 2 = 1.2 (1)
0.2 * 2 = 0.4 (0)
0.4 * 2 = 0.8 (0)
0.8 * 2 = 1.6 (1)
0.6 * 2 = 1.2 (1)

0.2 … получим периодическую дробь
Собираем, получаем 0.0100110011001… = 0.0(1001)

0.64510 → X5
0.645 * 5 = 3.225 (3)
0.255 * 5 = 1.275 (1)
0.275 * 5 = 1.375 (1)
0.375 * 5 = 1.875 (1)
0.875 * 5 = 4.375 (4)
0.375 * 5 = 1.875 (1)
…

0.3111414… = 0.311(14)

Перевод дробной части в десятичную систему

Осуществляется аналогично переводу целой части, путём домножения цифры разряда на основание в степени, равной положению разряда в числе.

0.1012 → X10

1∙2-1 + 0∙2-2 + 1∙2-3 = 0.5 + 0.125 = 0.625

0.1345 → X10

1∙5-1 + 3∙5-2 +4∙5-3 = 0.2 + 3∙0.04 + 4∙0.008 = 0.2 + 0.12 + 0.032 = 0.352

Перевод из произвольной системы счисления в произвольную

Перевод из произвольной системы счисления в произвольную с. с. осуществляется с помощью десятичной с. с.

XN → XM ≡ XN → X10 → XM

Например

12212013 → X7

12212013 = 1∙36 + 2∙35 + 2∙34 + 1∙33 + 2∙32 + 1 = 729 + 2∙243 + 2∙81 + 27 + 9 + 1 = 141410

1414/7 = 202 (0)
202/7 = 28 (6)
28/7 = 4 (0)
4/7 = 0 (4)

40607

12212013 → 40607

Родственные системы счисления

Системы счисления называют родственными, когда их основания являются степенями одного числа. Например, 2, 4, 8, 16. Перевод между родственными системами счисления можно осуществлять, воспользовавшись таблицей

Таблица для перевода между родственными системами счисления с базой 2
10 2 4 8 16
0 0000 000 00 0
1 0001 001 01 1
2 0010 002 02 2
3 0011 003 03 3
4 0100 010 04 4
5 0101 011 05 5
6 0110 012 06 6
7 0111 013 07 7
8 1000 020 10 8
9 1001 021 11 9
10 1010 022 12 A
11 1011 023 13 B
12 1100 030 14 C
13 1101 031 15 D
14 1110 032 16 E
15 1111 033 17 F

Для перевода из одной родственной системы счисления в другую, сначала нужно перевести число в двоичную систему. Для перевода в двоичную систему счисления каждая цифра числа подменяется на соответствующую двойку (для четверичной), тройку (для восьмеричной) или четвёрку (для шестнадцатеричной).

Для 1234 единица подменяется на 01, двойка на 10, тройка нa 11, получаем 110112

Для 57218 соответственно 101, 111, 010, 001, итого 1011110100012

Для E1216 получим 1110000100102

Для перевода из двоичной системы следует разбить число на двойки (4-я), тройки (8-я) или четвёрки чисел (16-я), а затем подменить на соответствующие значения.

1101001012 = 01.10.10.01.01 = 122114

1101001012 = 110.100.101 = 6458

1101001012 = 0001.1010.0101 = 1A516

Переход из одной родственной системы в другую осуществляется транзитом через наименьшее основание, в нашем случае через двойку.

332324 → X16

332324 → 11111011102 → 0011.1110.1110 → 3EE16

Понятно, что все эти рассуждения применимы и для систем счисления 3, 9, 21, 81 и 5, 25, 125 и т.п.

Q&A

Всё ещё не понятно? – пиши вопросы на ящик email