Лекция № 5. Перевод дробных чисел. Хранение целых чисел

Перевод дробных чисел из десятичной системы счисления в систему счисления с основанием q. Хранение информации в памяти ЭВМ.

 

5.1. Перевод дробных чисел из десятичной системы счисления в систему счисления с основанием q

Для перевода дробных чисел из десятичной системы счисления в систему счисления с основанием q необходимо отдельно перевести целую (см. 4.2.4.) и дробную части числа. Для перевода дробной части ее необходимо умножить на основание системы счисления q. При этом будет получено произведение, содержащее целую и дробную части. На следующем шаге дробную часть произведения необходимо умножить на основание системы счисления q. При этом будет получено очередное произведение, содержащее целую и дробную части. При выполнении следующих шагов дробные части произведений умножаются на основание системы счисления q. Этот процесс завершается в трех случаях:

1. Дробная часть очередного произведения равна нулю. В этом случае перевод исходного десятичного числа в систему счисления с основанием q точный.

2. Дробная часть очередного произведения оказывается равной одной из дробных частей произведений, найденных ранее. В этом случае искомое число представляет собой периодическую дробь в системе счисления с основанием q.

3. Задана точность перевода, определяемая количеством разрядов в дробной части искомого числа. В этом случае считается, что все разряды дробной части искомого числа определены, когда количество найденных произведений равно точности перевода.

Запишем дробную часть искомого числа. Цифре разряда с номером –1 соответствует целая часть первого произведения. Цифре разряда с номером –2 соответствует целая часть второго произведения, и т. д.

Пример 5.11. Дано десятичное число N10 = 0.625. Выполнить перевод числа в двоичную систему счисления (в скобках указана целая часть произведения):

1) 0.625 ´ 2 = 1.250 (1);

2) 0.250 ´ 2 = 0.500 (0);

3) 0.500 ´ 2 = 1.000 (1).

Дробная часть последнего произведения равна нулю. Перевод в систему счисления исходного числа точный. Запишем результат перевода:

0.62510 = 0.1012.

Пример 5.12. Дано десятичное число N10 = 0.6. Выполнить перевод числа в двоичную систему счисления:

1) 0.6 ´ 2 = 1.2 (1);

2) 0.2 ´ 2 = 0.4 (0);

3) 0.4 ´ 2 = 0.8 (0);

4) 0.8 ´ 2 = 1.6 (1);

5) 0.6 ´ 2 = 1.2 (1).

Дробная часть последнего произведения равна дробной части произведения, полученного на первом шаге. Искомая дробь является периодической с периодом 1001.

Запишем результат перевода: 0.610 = 0.(1001)2 (в скобках указан период).

Как видно из правила перевода дробные числа из десятичной системы счисления в систему счисления с основанием q не всегда переводятся точно (случай № 3). Возможно уменьшение первоначального значения числа (возникает потеря точности).

Пример 5.13. Найти относительную ошибку перевода числа N10 = 10.6 с точностью до четырех знаков. Учитывая решение примера 2.12, получим результат перевода:

N10= 10.610 = 1010.(1010)2 » 1010.10102.

Выполним перевод числа 1010.10102 в десятичную систему счисления и убедимся в потере точности:

1010.10102 = 1 ´ 23 + 0 ´ 22 + 1 ´ 21 + 0 ´ 20 + 1 ´ 2-1 + 0 ´ 2-2 + 1 ´ 2-3 +

+ 0 ´ 24 = 1 + 0 + 1 + 0 + 0.5 + 0.25 + 0.125 + 0.0625 = 10.562510.

В результате получим: N*10 = 10.5625.

Вычислим относительную ошибку: