- •Лекция №1. Системы счисления
- •1.1. Позиционные системы счисления
- •1.1.1. Двоичная система счисления
- •1.1.2. Восьмеричная система счисления
- •1.1.3. Шестнадцатеричная система счисления
- •1.2. Перевод целой части десятичного числа в различные системы счисления
- •1.3. Перевод дробной части десятичного числа в различные системы счисления с заданной точностью
1.3. Перевод дробной части десятичного числа в различные системы счисления с заданной точностью
Перевод дробной части числа представленного в десятичной с/с в двоичную, восьмеричную или шестнадцатеричную системы счисления выполняется путём умножения дробной части исходного числа на основание новой с/с. Так как процесс последовательного умножения может продолжаться до бесконечности, то перевод выполняется либо до получения требуемого количества разрядов в дробной части числа в новой с/с или до достижения заданной точности. При этом необходимо выполнить следующую последовательность действий:
1. Умножить дробную часть исходного числа на основание новой с/с. Целая часть полученного произведения даёт первую цифру дробной части числа в новой с/с.
2. Дробную часть полученного произведения умножить на основание новой с/с. Целая часть полученного произведения даёт следующую цифру дробной части числа в новой с/с.
3. Если достигнута заданная точность или получено требуемое количество цифр в дробной части числа в новой с/с то перейти к п. 4, иначе повторить п. 2.
4. Полученные в результате умножения целые части произведений, записать в порядке их вычисления. Это и будет дробная часть исходного числа в новой с/с.
Пример. Выполнить перевод дробной части десятичного числа в двоичную, восьмеричную и шестнадцатеричную с/с, используя в качестве критерия, необходимость получить 3 цифры в дробной части числа в новой с/с.
0,7410 (?)2 0,2310 (?)8 0,1210 (?)16
0,74 0,23 0,12
2 8 16
1
,
48 1,
84 1,
92
2 8 16
0, 96 6, 72 14, 72
2 8 16
1, 92 5, 76 11, 52
0,7410 0,1012 0,2310 0,1658 0,1210 0,1EB16
Переведем полученные значения обратно в десятичную систему счисления и определим А погрешность данного способа перевода.
0,1012 00, 1-1 0-2 1-3 = 020 + 12-1 + 02-2 + 12-3 = 0,62510
Погрешность для двоичной с/с составит
2 = 0,74 – 0,625 = 0,115.
0,1658 00, 1-1 6-2 5-3 = 080 + 18-1 + 68-2 + 58-3 0,22910
Погрешность для восьмеричной с/с составит
8 = 0,23 – 0,229 = 0,001.
0,1ЕВ16 00, 1-1 Е-2 В-3 = 0160 + 116-1 + 1416-2 + 1116-3 0,119910
Погрешность для шестнадцатеричной с/с составит
16=0,12–0,1199=0,0001.
Как известно, точность, с которой задано число, определяется количеством цифр в его дробной части. Для десятичной с/с точность представления числа определяется следующим образом:
(0, b-1 b-2 … b-k)10 b-110-1 + b-210-2 +…+ b-k10-k
Отсюда точность:
которую даёт цифра с весовым коэффициентом -1 равна 10-1 = 0.1;
которую даёт цифра с весовым коэффициентом -2 равна 10-2 = 0.01;
которую даёт цифра с весовым коэффициентом -k равна 10-k.
В общем случае, точность, с которой задается число, в любой позиционной системе счисления определяется из выражения
,
(4)
где А – основание системы счисления;
R – количество цифр в дробной части числа.
Точность перевода задается в десятичной системе счисления (t10). Для выполнения перевода с заданной точностью необходимо получить такое количество цифр в дробной части числа в новой системе счисления А, чтобы t10 > tA.
Пример. Выполнить перевод 0,7410 (?)2 с точностью t = 0,01.
0,74 0,7410 0,1-1 0-2 1-3 1-4 1-5 1-6 0-7 = 0,10111102
2
1
,
48 точность, которую даёт эта цифра t2
= 2-1
= 0,5 > t
= 0,01;
2
0, 96 точность, которую даёт эта цифра t2 = 2-2 = 0,25 > t = 0,01;
2
1, 92 точность, которую даёт эта цифра t2 = 2-3 = 0,125 > t = 0,01;
2
1, 84 точность, которую даёт эта цифра t2 = 2-4 = 0,0625 > t = 0,01;
2
1, 68 точность, которую даёт эта цифра t2 = 2-5 = 0,03125 > t = 0,01;
2
1, 36 точность, которую даёт эта цифра t2 = 2-6 0,01563 > t = 0,01;
2
0, 72 точность, которую даёт эта цифра t2 = 2-7 0,00781 < t = 0,01;
Полученная точность представления числа в двоичной с/с t2 меньше заданной точности t10, следовательно, процесс перевода можно завершить. Определим погрешность перевода, предварительно выполнив обратный перевод:
0,10111102 00, 1-1 0-2 1-3 1-4 1-5 1-6 0-7 =
= 020 + 12-1 + 02-2 + 12-3 + 12-4 + 12-5 + 12-6 + 02-7 0,73410
Погрешность составила 2 = 0,74 – 0,734 = 0,006 и не превышает t10.
Пример. Выполнить перевод 0,2310 (?)8 с точностью t = 0,001.
0,23 0,2310 0,1-1 6-2 5-3 6-4 = 0,16568
8
1
,
84 точность, которую даёт эта цифра t8
= 8-1
= 0,125 > t
= 0,001;
8
6, 72 точность, которую даёт эта цифра t8 = 8-2 = 0,0156 > t = 0,001;
8
5, 76 точность, которую даёт эта цифра t8 = 8-3 0,00195 > t = 0,001;
8
6, 08 точность, которую даёт эта цифра t8 = 8-4 0,00024 < t = 0,001;
Полученная точность представления числа в восьмеричной с/с t8 меньше заданной точности t10, следовательно, процесс перевода можно завершить. Определим погрешность перевода, предварительно выполнив обратный перевод:
0,16568 00, 1-1 6-2 5-3 6-4 = 080 + 18-1 + 68-2 + 58-3 + 68-4 0,2299810
Погрешность составила 8 = 0,23 – 0,22998 = 0,00002 и не превышает t10.
Перевод десятичного числа, содержащего целую и дробную части, в двоичную, восьмеричную или шестнадцатеричную системы счисления, происходит в два этапа. Вначале переводится целая часть, а затем дробная часть числа.
