Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БЕКИН_Д_ЖЕНАТОВ.doc
Скачиваний:
35
Добавлен:
24.08.2019
Размер:
4.5 Mб
Скачать

2.6. Перевод правильной дроби

Известно, что любое рациональное число можно представить в виде десятичной и обыкновенной дроби. Обыкновенная дробь, то есть дробь вида А/В может быть правильной и неправильной.

Дробь называется правильной, если А < В и неправильной, если А > В.

Если рациональное число представлено неправильной дробью, и при этом числитель дроби делится на знаменатель нацело, то данное рациональное число - число целое, во всех иных случаях возникает дробная часть. Дробная часть зачастую бывает очень длинным числом и даже бесконечным (бесконечная периодическая дробь, например 20/6), поэтому в случае с дробной частью у нас возникает не просто задача перевода одного представления в другое, а перевод с определённой точностью.

Аналитическая запись правильной дроби имеет следующий вид: (2.8.)

Перевод правильной дроби, представленной в систему счисления с основанием S, в систему счисления с основанием q заключается в последовательном умножении этой дроби на основание q по правилам системы счисления с основанием , причем перемножают только дробные части. Дробь в системе счисления с основанием представляется в виде упорядоченной последовательности целых частей произведений в порядке их получения. (Иными словами, старший разряд является первой цифрой произведения). Количество циклов умножения определяется требуемой точностью результата и равно + 1, где – количество разрядов искомого числа.

Для многих чисел указанный процесс умножения потенциально никогда не кончается. Поэтому он продолжается до тех пор, пока не будет получено необходимое число цифр дробной части. При переводе числа с целью представления ее в «машинной» форме можно точно указать требуемое количество цифр.

Пример 2.15. Перевести в двоичную систему счисления десятичную дробь 0,7243.

Основание исходной системы счисления S = 10. Основание новой системы счисления q = 2.

Согласно приведенного правила, исходное число 0,7243 надо умножать на основание новой системы (2) по правилам десятичной системы счисления. Выполним серию умножений до получения, например, шести цифр в двоичном числе.

Искомые цифры дроби:

0,7243 * 2 = 1,4486 1 старшая цифра

0,4486 * 2 = 0,8972 0

0,8942 * 2 = 1,7944 1

0,7944 * 2 = 1,5888 1

0,5888 * 2 = 1,1776 1

0,1776 * 2 = 0,3552 0

0,3552 * 2 = 0,7104 0

Искомое представление числа 0,7243 в двоичной системе счисления 0,101110.

Обратите внимание, что для получения шести цифр дроби выполнено семь умножений. Это связано с необходимостью выполнить округление, чтобы представить дробь заданной длины более точно.

Из примера видно, что конечная дробь в одной системе счисления может стать бесконечной в другой. Это справедливо для всех случаев, когда одна система счисления не может быть получена возведением в целую степень основания другой.

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

Пример 2.16. Представить 5,401(10) в двоичном виде.

Решение. Целую часть мы получим по уже известным нам правилам, и она равна двоичному числу 101. А дробную часть разложим по степеням 2.

Шаг 1: 2-2 = 0,25; 0,401 - 0,25 = 0,151. - это остаток.

Шаг 2: Сейчас необходимо степенью двойки представить 0,151. Сделаем это: 2-3 = 0,125; 0,151 - 0,125 = 0,026

Значит, исходную дробную часть можно представить в виде 2-2+2-3 . То же самое можно записать таким двоичным числом: 0,011. В первом дробном разряде стоит ноль, это потому, что в нашем разложении степень 2-1 отсутствует.

Из первого и второго шагов ясно, что это представление не точное и может быть разложение желательно продолжить. Согласно правилу нам нужно столько знаков М чтобы 103 было меньше чем 2М. То есть 1000<2M. То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как 29 = 512 и только 210 = 1024. Продолжим процесс.

Шаг 3: Сейчас работаем с числом 0,026. Ближайшая к этому числу степень двойки 2-6 = 0,015625; 0,026 - 0,015625 = 0,010375 теперь наше более точное двоичное число имеет вид: 0,011001. После запятой уже шесть знаков, но этого пока недостаточно, поэтому выполняем ещё один шаг.

Шаг 4: Сейчас работаем с числом 0,010375. Ближайшая к этому числу степень двойки 27 = 0,0078125; 0,010375 - 0,0078125 = 0,0025625.

Шаг 5: Сейчас работаем с числом 0,0025625. Ближайшая к этому числу степень двойки 2-9 = 0,001953125; 0,0025625 - 0,001953125 = 0,000609375.

Последний получившийся остаток меньше чем 2-10 и если бы мы желали продолжать приближение к исходному числу, то нам бы понадобилось 2-11, но это уже превосходит требуемую точность, а, следовательно, расчёты можно прекратить и записать окончательное двоичное представление дробной части:

0,401 = 0,011001101.

Как видно, преобразование дробной части десятичного числа в двоичное представление сложнее, чем преобразование целой части.

Алгоритм преобразования:

Исходные данные алгоритма: Через А будем обозначать исходную правильную десятичную дробь, записанную в десятичной форме. Пусть эта дробь содержит N знаков.

Действие 1. Определим количество необходимых двоичных знаков М из неравенства 10N < 2M.

Действие 2. Цикл вычисления цифр двоичного представления (цифры после нуля). Номер цифры будем обозначать символом К.

Номер цифры = 1.

Если 2> А , то в запись двоичного числа добавляем ноль.

Иначе

– в запись двоичного числа добавляем 1

– А = А - 2

К = К + 1.

Если К > М

– то работа алгоритма завершена

– иначе переходим на пункт 2.

В заключение следует отметить, что перевод из одной системы счисления в другую произвольных чисел можно осуществлять по общим правилам, описанным в разделе “Двоичная система счисления”. Однако на практике переводы чисел из десятичной системы в рассмотренные системы счисления и обратно осуществляются через двоичную систему счисления.

Кроме того, следует помнить, что шестнадцатеричные и восьмерич­ные числа – это только способ представления больших двоичных чисел, которы­ми фактически оперирует процессор. При этом шестнадцатерич­ная систе­ма оказывается предпочтительнее, поскольку в современных ЭВМ про­цес­соры манипулируют словами длиной 4, 8, 16, 32 или 64 бита, т.е. длиной слов, кратной 4. В восьмеричной же системе счисления предпочтительны слова, кратные 3 битам, например, слова длиной 12 бит.