"Информатика (базовый и углублённый уровень)", Гейн А.Г., Сенокосов А.И.
Перевод дробной части числа нужен, чтобы записывать одно и то же значение в разных системах счисления — например, представлять доли в двоичной или шестнадцатеричной форме. В позиционной записи разряды после запятой соответствуют отрицательным степеням основания. Поэтому при переводе в систему с основанием q дробную часть последовательно умножают на q: целые части произведений становятся цифрами новой записи. Если дробный остаток обнулился, перевод точный; иначе запись может продолжаться бесконечно.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Позиционная система счисления — система, в которой значение цифры определяется её местом в записи числа. Основание системы показывает, сколько разных цифр используется: в системе с основанием q допустимы цифры от 0 до q − 1. Это помогает понять, какие обозначения возможны в новой записи и какое значение имеет каждый разряд.
Дробная часть числа — часть записи справа от запятой. В позиционной системе её разряды соответствуют отрицательным степеням основания: в десятичной записи это десятые, сотые, тысячные и так далее. Такое представление позволяет разобрать дробь на слагаемые и увидеть, как её значение связано с цифрами после запятой.
Периодическая дробь — запись, в которой последовательность цифр после запятой повторяется снова и снова. Если дробная часть записи заканчивается, она конечная; если некоторый набор цифр повторяется, запись периодическая. Это различие нужно, чтобы определить, завершился ли точный перевод или его результат продолжается бесконечно.
Перевод дробной части в систему с основанием q — получение цифр новой записи последовательным умножением дроби на q. При каждом шаге целая часть произведения даёт следующую цифру, а его дробная часть используется дальше. Этот приём позволяет переводить десятичные дроби в двоичную, троичную и другие системы.
Дробное число в позиционной записи можно представить как сумму разрядных слагаемых. Каждая цифра после запятой умножается на соответствующую отрицательную степень основания: например, 0,625₁₀ = 6·10⁻¹ + 2·10⁻² + 5·10⁻³. Отрицательные степени показывают доли единицы, поэтому разряд справа от запятой имеет меньший вес, чем целый разряд. Такое разложение объясняет, почему цифры дробной части нельзя получать тем же способом, что цифры целой.
Целую часть переводят делением на новое основание, а дробную — умножением. Деление целого числа даёт остатки, из которых складываются его разряды, начиная с младшего; поэтому остатки читают в обратном порядке. При умножении дроби на основание один дробный разряд переносится в целую часть произведения, и именно эта часть становится очередной цифрой. Методы различаются, потому что целая и дробная части расположены по разные стороны разделителя.
Для перевода десятичной дроби в систему с основанием q сначала отделите дробную часть исходного числа. Умножьте её на q, запишите целую часть произведения, а затем повторите действие с дробной частью этого произведения. Каждый раз берётся именно новый остаток, потому что он содержит ещё не переведённую часть числа. Если исходное число имеет также целую часть, её переводят отдельно и соединяют результаты запятой.
Полученные цифры записывают в той же последовательности, в какой выполнялись умножения. Целая часть первого произведения становится первым знаком справа от запятой, второго — следующим и так далее. Это происходит потому, что каждое умножение извлекает очередной разряд дробной записи, начиная с самого старшего. Переворачивать цифры, как при переводе целой части делением, не нужно.
Если дробная часть очередного произведения стала нулём, дальнейшие умножения дадут только нули, поэтому точный перевод можно закончить. Если остаток не обнуляется, процесс может продолжаться: при повторении остатка дальше повторятся и цифры, образуя период. Когда период ещё не найден или нужна лишь заданная точность, вычисления останавливают после нужного числа знаков. Такая оборванная запись является приближённой, а не точным равенством.
Пользуйтесь таблицей как последовательностью действий: на каждом шаге переносите дробную часть прошлого произведения в следующий расчёт. Целую часть записывайте сразу в результат, в порядке сверху вниз. Если остаток не стал нулём, можно продолжить вычисления или остановиться на требуемой точности.
| Этап | Действие | Что записать в результат |
|---|---|---|
| Выделение дробной части исходного числа | Отделить часть записи после запятой | Начальное значение для умножения |
| Умножение текущей дробной части на q | Умножить текущий остаток на основание целевой системы | Пока ничего не записывать |
| Запись целой части произведения как очередной цифры | Отделить целую часть полученного произведения | Целую часть — следующей цифрой после запятой |
| Переход к дробной части произведения | Оставить дробный остаток и использовать его в следующем умножении | Новый остаток не записывать |
| Условие завершения или остановки с заданной точностью | Проверить, равен ли остаток нулю, или достигнуто ли нужное число знаков | Точный результат либо приближённую запись |
Нужно получить запись дроби с основанием 2, поэтому последовательно умножаем дробную часть на 2. Каждый раз целая часть произведения даёт один двоичный разряд, а вычисления продолжаем с остатком. Следим, обнулится ли остаток: это покажет, закончился ли точный перевод.
Цифры 1, 0, 1 записаны в порядке вычислений, а нулевой остаток подтверждает точность результата. Ответ: 0,625₁₀ = 0,101₂.
Здесь нужно получить ровно шесть цифр, поэтому выполняем шесть умножений на 2. Записываем целые части, каждый раз переходя к новому дробному остатку. Если после шестого шага остаток не равен нулю, это означает, что запись не закончилась и ответ с шестью знаками будет приближённым.
Целые части образуют 010011, а дробный остаток после шестого умножения равен 0,2, а не нулю. Значит, запись продолжается; более того, остатки 0,6 и 0,2 уже повторились, поэтому цифры далее также повторяются. Ответ с указанной точностью: 0,3₁₀ ≈ 0,010011₂.
Умножаем на 3 и на каждом шаге записываем целую часть произведения. Одновременно отслеживаем дробные остатки: если один из них повторится, дальнейшие действия начнут повторять уже выполненные шаги. Это позволит обосновать, конечная запись или периодическая.
Остаток 0,4 совпал с исходным, поэтому следующий шаг повторит первый, затем повторятся остальные шаги. Цифры 1012 будут повторяться бесконечно, а остаток не обнулится. Ответ: 0,4₁₀ = 0,(1012)₃; запись периодическая и не конечная.
Записывают дробные части произведений вместо целых. Обычно так происходит, если смешать очередную цифру с остатком для следующего шага. Проверка: цифра результата всегда должна быть целым числом от 0 до q − 1, а дробная часть остаётся для нового умножения.
Читают полученные цифры в обратном порядке. Это привычка, перенесённая с перевода целых чисел делением, когда остатки действительно переворачивают. Проверьте себя: первый результат умножения всегда относится к первому разряду после запятой.
После каждого умножения снова берут исходную дробь. Тогда один и тот же шаг повторяется, а остальные разряды не находятся. Чтобы проверить вычисление, выписывайте дробную часть каждого произведения и используйте её как множитель на следующем шаге.
Считают конечную последовательность вычислений точным переводом, даже если остаток не стал нулём. Так бывает, когда забывают проверить дробную часть последнего произведения. Укажите заданную точность и поставьте знак приближённого равенства, если остановились при ненулевом остатке.
Для перевода дробей нужны знания о позиционной записи, основаниях систем и переводе целых чисел делением на основание: части числа переводят разными алгоритмами, а затем соединяют. Метод применяют, когда измеренные или вычисленные доли требуется представить в двоичной, восьмеричной, десятичной либо шестнадцатеричной системе. Конечные и периодические записи также связаны с представлением вещественных чисел в памяти компьютера. Если значение приходится хранить с ограниченным числом разрядов, возникает погрешность округления.
Почему дробную часть переводят умножением, а не делением?
Умножение на основание сдвигает дробные разряды так, что очередная цифра оказывается перед запятой. Деление на основание применяют для целой части: оно помогает получить её цифры, начиная с младших разрядов.
Как определить очередную цифру новой записи?
Умножьте текущую дробную часть на основание целевой системы. Целая часть полученного произведения и будет очередной цифрой.
В каком порядке записывать полученные цифры?
Записывайте цифры в порядке выполнения умножений. Целая часть первого произведения становится первой цифрой после запятой.
Почему при переводе дроби иногда получается бесконечная запись?
Если дробная часть произведения не становится нулём, умножения продолжаются. Остатки могут повториться, и тогда цифры после запятой будут периодически повторяться.
Как понять, сколько знаков оставить при приближённом переводе?
Число знаков задаёт требуемая точность задачи. Если нужно шесть знаков после запятой, выполните шесть умножений; полученную запись считайте приближённой, если остаток не обнулился.
§ 12. Перевод дробных чисел из одной системы счисления в другую