"Информатика (базовый уровень) (в 2 частях)", Под ред. Макаровой Н.В.
Компьютер хранит числа в виде двоичных разрядов, а выбранный формат определяет, какие значения можно записать и насколько точно. При фиксированной запятой её место заранее установлено; при плавающей число задаётся значащей частью и степенью основания системы счисления. От распределения разрядов зависит диапазон: какие маленькие и большие числа доступны, а также точность представления. Понимание форматов помогает объяснить ошибки округления в вычислениях.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Формат с фиксированной запятой — способ представления числа, при котором положение запятой заранее задано. Например, если под дробную часть отведено четыре разряда, после запятой всегда записывают четыре двоичные цифры, при необходимости добавляя нули. Такой формат нужен, когда важно заранее знать шаг между соседними значениями.
Формат с плавающей запятой — способ записи числа через значащую часть и степень основания системы счисления. В двоичной системе число можно представить как мантиссу, умноженную на 2 в степени порядка. Это позволяет одним форматом записывать числа разных масштабов — от очень малых до очень больших.
Мантисса — часть записи числа с плавающей запятой, в которой содержатся его значащие цифры. В записи 1,01101₂ × 2² мантиссой служит 1,01101₂. Она нужна, чтобы хранить сами значащие цифры и определять, насколько точно задано число.
Порядок — показатель степени основания системы счисления, который задаёт масштаб числа. В записи 1,01101₂ × 2² порядок равен 2, поэтому мантисса умножается на 2². Изменяя порядок, можно сдвигать запятую и представлять значения разного размера.
В памяти число кодируется последовательностью двоичных разрядов: каждый разряд может иметь одно из двух значений — 0 или 1. Последовательность конечна, поэтому она не может описать любое число без ограничений. Чем больше разрядов выделено, тем больше комбинаций доступно, но формат и правила их интерпретации тоже определяют, какие именно значения можно получить.
При фиксированной запятой часть разрядов отводится целой части, а остальные — дробной. Если разрядов дробной части больше, можно записывать более мелкие доли, однако для целой части остаётся меньше места. Причина такого компромисса проста: общее число разрядов ограничено, и дополнительные позиции одной части нельзя одновременно использовать для другой.
Плавающая запятая напоминает стандартную запись числа, например 1,25 × 10³: значащая часть сохраняет цифры, а степень показывает масштаб. В компьютере основанием обычно служит 2, поэтому мантисса умножается на степень двойки. Запятая как будто перемещается потому, что нужный сдвиг кодируется порядком, а не постоянным местом в последовательности разрядов.
Разряды формата с плавающей запятой распределяются между знаком числа, мантиссой и порядком. Больше разрядов порядка позволяет охватить более широкий диапазон величин, тогда как больше разрядов мантиссы помогает точнее записывать значащие цифры. При одинаковой общей разрядности увеличение одной части обычно означает сокращение другой, поэтому диапазон и точность приходится соотносить.
Не всякая дробь в десятичной записи имеет конечное двоичное представление. Например, число 0,1₁₀ при переводе в двоичную систему записывается бесконечной последовательностью разрядов, а компьютер может хранить только конечную часть. Оставшееся значение округляют, поэтому в вычислениях появляется небольшая погрешность; повторные операции иногда увеличивают её влияние.
| Свойство | Фиксированная запятая | Плавающая запятая |
|---|---|---|
| Как задаётся положение запятой | Заранее и одинаково для всех чисел данного формата | Определяется мантиссой и порядком, поэтому может перемещаться |
| Какие части числа кодируются | Целая часть и дробная часть | Знак, мантисса и порядок |
| Диапазон представимых чисел | Зависит от числа разрядов целой части | Зависит прежде всего от числа разрядов порядка |
| Точность представления | Зависит от числа разрядов дробной части | Зависит прежде всего от числа разрядов мантиссы |
| Типичные причины ошибок | Недостаточно разрядов целой или дробной части | Округление мантиссы и ограничение порядка |
Сначала определите, какие части числа хранит каждый формат, а затем сравните, сколько разрядов на них выделено. Для фиксированной запятой это покажет возможный диапазон и шаг дробной части; для плавающей — соотношение диапазона и точности. Таблица описывает общие принципы: конкретные границы зависят от разрядности и правил кодирования.
Условие. Представить число 13,25 в двоичной системе и записать его в формате с фиксированной запятой, если для дробной части выделено четыре разряда. Переведём целую и дробную части отдельно, а затем объединим результаты. Последний шаг — дополнить дробную часть нулём до требуемой разрядности.
Ответ: 13,25₁₀ = 1101,0100₂ при четырёх разрядах дробной части. Нули справа не меняют значение, но показывают заданную точность формата. Запятая остаётся на том месте, которое установлено для этой записи.
Условие. Записать число 101,101₂ в нормализованном виде с плавающей запятой. Нормализованная двоичная мантисса имеет вид от 1 до 10, то есть перед запятой в ней оставляют одну значащую цифру. Чтобы получить такой вид, переносим запятую в исходном числе влево и учитываем величину сдвига в порядке.
Ответ: 1,01101₂ × 2²; мантисса равна 1,01101₂, порядок — 2. Проверка обратным сдвигом помогает не перепутать знак порядка. В этой записи обе части вместе сохраняют исходное значение.
Условие. Для двух условных форматов одинаковой разрядности определить, какой хранит числа большего диапазона, а какой точнее представляет значения вблизи единицы. Пусть в одном формате больше разрядов выделено порядку, а в другом — мантиссе. Сравним, на что расходуются разряды, вместо того чтобы считать форматы одинаково точными только из-за их общей длины.
Ответ: больший диапазон даёт формат с большим числом разрядов порядка, а более точное представление — формат с более длинной мантиссой. Вывод следует из назначения каждой части числа. При одинаковом общем числе разрядов выигрыш в одной характеристике обычно достигается за счёт другой.
Ошибка: считать, что плавающая запятая гарантирует точное хранение любого вещественного числа. Такое представление часто воспринимают как универсальное, но число разрядов мантиссы конечно, а некоторые дроби имеют бесконечную двоичную запись. Проверка: выясните, конечна ли двоичная запись числа, и помните, что мантисса может быть округлена.
Ошибка: путать мантиссу и порядок. Порядок связывают с числом потому, что он записан рядом с мантиссой, но части выполняют разные функции: мантисса хранит значащие цифры, а порядок задаёт масштаб. Проверка: мысленно измените порядок — число станет другого размера; измените мантиссу — изменятся его значащие цифры.
Ошибка: оценивать точность только по общей разрядности формата. Одинаковое число разрядов не означает одинаковое число разрядов мантиссы: часть может быть отведена под порядок и знак. Проверка: сравнивайте конкретно длину мантиссы и число разрядов порядка, а не только размер записи целиком.
Ошибка: считать, что положение фиксированной запятой никак не влияет на точность и диапазон. Его выбор определяет, сколько разрядов остаётся для целой и дробной частей, поэтому ограничиваются и максимальная целая часть, и минимальный шаг. Проверка: пересчитайте, сколько разрядов выделено каждой части, и оцените, какие числа в них поместятся.
Для понимания форматов нужно знать двоичную систему счисления и уметь переводить в неё целые и дробные числа. Эти навыки помогают отдельно получить двоичные цифры целой и дробной частей, а затем понять, как они размещаются в компьютерной записи.
Плавающая запятая связана с изучением точности результатов вычислений и ошибок компьютерных расчётов. Понимая, откуда берётся округление при хранении числа, легче объяснить, почему результат программы иногда немного отличается от ожидаемого математического значения.
Чем формат с фиксированной запятой отличается от формата с плавающей?
В формате с фиксированной запятой положение запятой заранее определено, а разряды распределены между целой и дробной частями. В формате с плавающей запятой число хранится как значащая часть и степень, поэтому запятая может перемещаться, а диапазон представимых чисел обычно шире.
Что такое мантисса и порядок?
Мантисса содержит значащие цифры числа, а порядок показывает степень основания системы счисления. Вместе они задают значение: например, 1,101₂ × 2³ — мантисса 1,101₂ и порядок 3.
Почему компьютер не всегда хранит дробное число точно?
В двоичной системе некоторые дроби имеют бесконечную запись, поэтому их приходится заменять ближайшим значением, помещающимся в отведённые разряды. Например, десятичная дробь 0,1 не имеет конечного двоичного представления.
Как распределение разрядов влияет на точность числа?
Чем больше разрядов отведено мантиссе, тем больше значащих цифр можно сохранить и тем точнее представление. Если часть разрядов выделить под порядок, диапазон может вырасти, но точность при том же общем числе разрядов обычно снизится.
Почему при вычислениях на компьютере могут возникать ошибки округления?
Многие числа нельзя записать точно конечным количеством двоичных разрядов, поэтому при хранении они округляются. При последовательных операциях такие небольшие погрешности могут накапливаться и влиять на результат.
Форматы представления чисел в компьютере