На Горох
Информатика, 10 класс

§ 26. Особенности представления чисел в компьютере

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 26. Особенности представления чисел в компьютере

Кратко о теме

Компьютер хранит числа не в привычном для человека виде, а как набор конечного числа двоичных разрядов. Поэтому для каждого формата существуют ограничения: одни числа нельзя представить совсем, другие приходится округлять. От разрядности зависят диапазон допустимых значений и точность вычислений. Понимание мантиссы, порядка и машинного округления помогает объяснить ошибки при работе с большими, малыми и дробными числами.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

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

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

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

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

Как это устроено

Конечный объём памяти означает, что для числа можно использовать только фиксированное количество битов. Из-за этого невозможно одновременно хранить все числа сколь угодно большого диапазона и различать сколь угодно близкие значения. Чем больше кодов доступно формату, тем больше чисел он охватывает, но бесконечное множество всё равно недостижимо.

Целое число записывается набором двоичных разрядов, каждый из которых имеет вес степени двойки. Например, 13 = 1101₂, потому что 13 = 8 + 4 + 1. Если беззнаковое число занимает n бит, его значения лежат от 0 до 2ⁿ − 1: все нули дают минимум, а все единицы — максимум.

В формате с фиксированной точкой часть разрядов отводится целой части, а часть — дробной. Положение двоичной точки заранее не меняется, поэтому можно точно хранить только дроби с определённым шагом, например 0,01 или 0,001 в выбранной шкале. Увеличение числа целых разрядов расширяет диапазон, а увеличение числа дробных разрядов повышает точность, но оба ресурса ограничены.

В формате с плавающей точкой число представляют в виде мантиссы, умноженной на степень основания, например m · 2ᵖ. Порядок p можно менять, сдвигая двоичную точку, поэтому один формат подходит для чисел разных масштабов. Разряды порядка дают широкий диапазон, а разряды мантиссы определяют, насколько подробно записываются значащие цифры.

Некоторые десятичные дроби не имеют конечной двоичной записи, потому что после последовательного умножения дробной части на 2 остаток не становится нулём. Так происходит с 0,1 и 0,2, тогда как 0,625 = 0,101₂ записывается конечным числом разрядов. При ограниченной длине записи компьютер обрезает или округляет бесконечную последовательность, и результат вычислений может немного отличаться от математического.

Сравнение способов представления чисел

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

СвойствоЦелые числаФиксированная точкаПлавающая точка
Как задаётся значениеДвоичными разрядами целого числаРазрядами до и после заранее заданной точкиМантиссой и порядком
Диапазон представимых значенийЗависит от общего числа битов и знакаЗависит от числа целых разрядовВ основном зависит от разрядов порядка
Точность дробной частиДробной части нетОпределяется числом дробных разрядовОпределяется числом разрядов мантиссы
Что происходит при выходе за диапазонВозникает переполнениеВозникает переполнениеПолучается переполнение или специальное значение
Типичная причина погрешностиНеверный формат или переполнениеСлишком крупный шаг сеткиОкругление мантиссы

Разбор задач

Задача 1. Для беззнакового целого числа, занимающего 8 бит, определим наибольшее представимое значение. Знака у такого числа нет, поэтому все разряды можно использовать для записи величины. Нужно рассмотреть самый большой двоичный код.

  1. Максимальный код состоит из восьми единиц: 11111111₂.
  2. Переведём его в десятичную систему: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1.
  3. Сумма равна 255, что совпадает с формулой 2⁸ − 1.

Ответ: наибольшее значение равно 255. Нулевое значение занимает код 00000000₂, поэтому всего доступно 256 вариантов от 0 до 255. Если попытаться записать 256, восьми битов уже не хватит.

Задача 2. Представим дробь 0,625 в двоичной системе и проверим конечность записи. Для дробной части применяем последовательное умножение на 2, каждый раз записывая целую часть результата. Процесс заканчивается, когда новая дробная часть становится нулём.

  1. 0,625 · 2 = 1,25, первый разряд равен 1, остаток 0,25.
  2. 0,25 · 2 = 0,5, второй разряд равен 0, остаток 0,5.
  3. 0,5 · 2 = 1,0, третий разряд равен 1, остаток 0.

Ответ: 0,625 = 0,101₂. Запись конечна, потому что после третьего шага остаток исчез. Значит, при наличии хотя бы трёх дробных двоичных разрядов это число можно сохранить точно.

Задача 3. Объясним, почему вычисление 0,1 + 0,2 может дать значение, не равное точно 0,3. В двоичной системе эти десятичные дроби имеют бесконечные записи, поэтому в памяти хранятся их округлённые варианты. При сложении складываются уже эти приближённые значения.

  1. Каждую дробь компьютер заменяет ближайшим доступным числом.
  2. Складываются сохранённые приближения, а не идеальные 0,1 и 0,2.
  3. Сравниваем результат с 0,3 по модулю разности и проверяем, меньше ли она выбранного ε.

Ответ: небольшое расхождение объясняется округлением, а не обязательно ошибкой алгоритма. Практическая проверка имеет вид |результат − 0,3| < ε. Величину ε выбирают согласно требуемой точности вычислений.

Типичные ошибки

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

Ошибка — путать диапазон и точность. Порядок помогает работать с большими и малыми масштабами, а мантисса определяет количество значащих цифр. Чтобы проверить себя, спросите: речь идёт о размере числа или о близости соседних представимых значений?

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

Ошибка — сравнивать вещественные результаты на точное равенство. Малое расхождение после нескольких операций часто возникает из-за накопления округлений. Используйте условие |a − b| < ε и выбирайте ε осмысленно.

Связь с другими темами

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

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

Что запомнить

  • Компьютер хранит числа в конечном числе двоичных разрядов.
  • Разрядность ограничивает диапазон представимых значений.
  • В формате с плавающей точкой число задаётся мантиссой и порядком.
  • Число разрядов мантиссы влияет на точность.
  • Не всякая конечная десятичная дробь имеет конечную двоичную запись.
  • Округление может накапливать погрешность в последовательности вычислений.

Частые вопросы по теме

Почему компьютер не может точно хранить любое число?

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

Чем мантисса отличается от порядка?

Мантисса хранит значащие цифры числа и в основном определяет точность. Порядок задаёт степень масштаба, поэтому влияет прежде всего на диапазон больших и малых чисел.

Почему дробь 0,1 может быть представлена неточно?

В двоичной системе дробь 0,1 записывается бесконечной периодической дробью. В памяти можно оставить только конечное число её разрядов, поэтому значение округляется.

Что ограничивает диапазон чисел с плавающей точкой?

Диапазон ограничен числом разрядов, выделенных под порядок. Слишком большие числа вызывают переполнение, а слишком малые могут стать нулём или потерять точность.

Как учитывать погрешность при сравнении вещественных чисел?

Вместо точного равенства проверяют, меньше ли модуль разности допустимой погрешности: |a − b| < ε. Значение ε выбирают с учётом масштаба чисел и точности используемого формата.

Спросить по теме параграфа

§ 26. Особенности представления чисел в компьютере

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.