§ 25. Кодирование числовых данных

25.1. Перевод дробных и смешанных чисел

Рассмотрим перевод правильной десятичной дроби в любую другую позиционную систему счисления.

Для перевода десятичной дроби F в систему счисления с основанием q ( F10 → Fq) необходимо F умножить на q, затем дробную часть произведения снова умножить на q и т. д., до тех пор, пока дробная часть произведения не станет равной нулю, либо пока не будет достигнута требуемая точность представления F в системе счисления q (определенное количество цифр в записи результата).

Схема перевода десятичной дроби в двоичную систему счисления выглядит следующим образом:

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

В примере 25.1 выполнены переводы ( F10  Fqдесятичных дробей в позиционную систему счисления с основанием ( F10  Fq).  

Для смешанных чисел перевод выполняется отдельно для целой и дробной части (пример 25.2).

В ситуации перевода дробей Zp  Zq, когда основания систем счисления (p и q) являются степенями двойки, двоичную систему счисления удобно использовать для перевода как промежуточную по схеме Zp  Z2 → Zq. В этом случае разделение цифр в записи числа на группы начинается с нулевого разряда и выполняется так же, как и при переводе целых чисел (пример 25.3). При этом разряды в записи чисел нумеруются с 0, и цифра в нулевом разряде соответствует единицам. Нумерация разрядов возрастает влево от нулевого разряда и убывает вправо, т. е. в дробной части числа нумерация разрядов отрицательная.

Алгоритм перевода дробных и смешанных чисел из системы счисления с основанием p в систему счисления с основанием 10 (Zp  Z10 ), так же как для целых чисел, вытекает из способа представления числа в системе счисления с основанием  (пример 25.4).

Пример 25.1. Перевод правильной десятичной дроби в другие системы счисления.

1)     

2)     

3)     

 4)     

 0,91610 ≈ 0,22(с предельной абсолютной погрешностью 3–4).

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

41,62510 → х16

4110 = 2916

41,62510 = 29,А16

Пример 25.3. Перевод Z8  Z2 → Z16.

362,538 = 011¢110¢010,101¢011 = 0¢1111¢0010,1010¢1100 = F2,AB16

Пример 25.4. Перевод смешанного числа из системы счисления с основанием p в систему счисления с основанием 10.

Для перевода необходимо:

  1. Представить число в виде суммы разрядных слагаемых по степеням p.
  2. Выполнить арифметические операции в десятичной системе счисления.

Переведем в десятичную систему счисления шестнадцатеричное число 29,А16:

begin mathsize 14px style 29 comma A subscript 16 space equals space 2 space times 16 to the power of 1 space plus space 9 space times space 16 to the power of 0 space plus space A space times space 16 to the power of – 1 end exponent space equals space 32 space plus space 9 space 10 over 16 space equals space 41 comma 625 subscript 10 end style