"Информатика", Босова Л.Л., Босова А.Ю.
Вещественные числа – это числа с десятичной дробью, такие как 3.14 или -2.71. Компьютерам сложно хранить их «в точности», поэтому используют специальный формат с плавающей точкой, похожий на запись в научном виде. Этот формат позволяет представлять широкий диапазон чисел, но при этом неизбежно возникают небольшие погрешности в значениях. Понимание этих принципов важно для корректной работы с данными в программировании и других областях.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Вещественное число – это число, которое может быть представлено в виде бесконечной десятичной дроби. Этот тип числа обобщает понятие целого и рационального чисел, включая числа с дробной частью, такие как 3.14, -2.5 или 0.001. В информатике вещественные числа используются для представления реальных величин, которые не всегда можно выразить точно в виде целых чисел.
Мантисса – это значащая часть вещественного числа в его нормализованной форме. Она отображает порядок цифр и определяет значение числа без учета его масштаба. Мантисса, по сути, показывает, какие цифры у числа, кроме степени, на которую нужно умножить основание системы счисления.
Порядок – это степень основания системы счисления, на которую умножается мантисса. Это определяет масштаб числа, то есть, насколько оно велико или мало. Порядок позволяет эффективно представлять как очень большие, так и очень маленькие числа, используя ограниченное количество битов.
Нормализация – это представление вещественного числа в виде мантиссы и порядка, при котором мантисса находится в определенном диапазоне (обычно от 1 до 10 или от 0.1 до 1). Нормализация позволяет стандартизировать представление чисел, упрощая их сравнение и обработку.
Необходимость представления вещественных чисел в компьютере связана с тем, что многие реальные величины (например, рост человека, температура, координаты объектов) не являются целыми числами. К тому же, некоторые числа, такие как корень из двух (√2), не могут быть точно представлены в виде рациональных чисел. Поэтому компьютерам нужен способ аппроксимации этих чисел.
Представление вещественных чисел в компьютере основано на использовании системы счисления с плавающей точкой, которая напоминает научную нотацию в математике. Например, число 1234.56 можно записать как 1.23456 × 10³. Здесь 1.23456 – мантисса, а 3 – порядок. Компьютеры используют двоичную систему счисления (основание 2), поэтому числа представляются в виде мантиссы, умноженной на 2 в определенной степени.
Нормализация числа позволяет эффективно использовать доступные биты для хранения информации о значении и масштабе числа. За счет представления числа в нормализованном виде, максимально возможное количество битов используется для хранения мантиссы, что повышает точность представления числа. Это позволяет компьютеру хранить числа с широким диапазоном значений.
Точность представления вещественных чисел ограничена количеством битов, выделенных для мантиссы. Поскольку компьютер не может хранить бесконечное количество знаков после запятой, приходится округлять число до ближайшего представимого значения. Это приводит к возникновению ошибок округления, которые могут накапливаться в процессе выполнения вычислений.
Выбор формата представления (например, одинарная или двойная точность) напрямую влияет на точность и диапазон представимых чисел, а также на объем памяти, который требуется для их хранения. Форматы отличаются количеством битов, выделенных для мантиссы и порядка. Большее количество битов обеспечивает большую точность и диапазон.
| Характеристика | Одинарная точность (float) | Двойная точность (double) |
|---|---|---|
| Количество бит | 32 | 64 |
| Количество бит для мантиссы | 23 | 52 |
| Количество бит для порядка | 8 | 11 |
| Диапазон представимых значений | ±1.18e-38 до ±3.4e38 | ±2.23e-308 до ±1.8e308 |
| Точность | Приблизительно 7 значащих цифр | Приблизительно 15-17 значащих цифр |
Эта таблица показывает, что двойная точность (double) предоставляет гораздо больший диапазон представимых значений и более высокую точность, чем одинарная (float). При выборе формата следует учитывать требования к точности вычислений и доступный объем памяти.
Задача 1: Представьте число 123.45 в нормализованном виде.
Ответ: 1.2345 × 10²
Задача 2: Переведите число 1.101 × 2⁵ в десятичное представление.
Ответ: 52
Задача 3: Объясните, почему результаты некоторых вычислений с вещественными числами могут отличаться от ожидаемых.
Результаты вычислений с вещественными числами могут отличаться от ожидаемых из-за ошибок округления. Компьютеры не могут точно представить все вещественные числа, поэтому они округляют их до ближайших представимых значений. Эти ошибки могут накапливаться в процессе вычислений, приводя к небольшим расхождениям в результате. Кроме того, порядок операций может влиять на величину ошибки округления.
Неправильное понимание роли порядка – многие допускают ошибку, путая порядок с прямым масштабированием мантиссы. Важно помнить, что порядок определяет степень, на которую умножается основание системы счисления (обычно 2), а не просто добавляет или удаляет цифры из мантиссы.
Игнорирование ошибок округления – некоторые считают, что вещественные числа можно представить абсолютно точно. Это приводит к неверным ожиданиям от результатов вычислений и может привести к ошибкам в логике программы.
Неучет диапазона представимых значений – попытки представить слишком большие или слишком маленькие числа могут привести к переполнению или потере значимости, что искажает результаты вычислений.
Неправильная интерпретация нормализованной формы – забывание о том, что мантисса обычно ограничена диапазоном от 1 до 10 или от 0.1 до 1 может привести к неверному пониманию масштаба числа.
Системы счисления (двоичная, десятичная) – понимание принципов представления чисел в различных системах счисления необходимо для понимания, как вещественные числа хранятся и обрабатываются в компьютере.
Представление целых чисел в компьютере – знание принципов кодирования целых чисел помогает понять основы представления вещественных чисел, а также различия между ними.
Что такое ошибка округления и как она возникает?
Ошибка округления возникает из-за ограниченной точности представления вещественных чисел в компьютере. Многие вещественные числа имеют бесконечное количество знаков после запятой, а компьютер может сохранить лишь конечное их количество. В результате число приходится округлять до ближайшего представимого значения, что и является источником ошибки.
В чем разница между одинарной и двойной точностью?
Одинарная (float) и двойная (double) точность различаются количеством бит, выделенных для хранения числа. Двойная точность использует больше бит, что позволяет ей представить числа с большей точностью и в большем диапазоне значений, чем одинарная. Но двойная точность требует больше памяти.
Почему компьютер не может точно представить число 0.1?
Число 0.1 нельзя точно представить в двоичной системе счисления (используемой компьютерами) так же, как число 1/3 нельзя точно представить в десятичной системе счисления. В двоичном виде 0.1 представляет собой бесконечную повторяющуюся дробь, которую компьютер вынужден округлить.
Как нормализация влияет на точность представления числа?
Нормализация – это представление числа в виде мантиссы и порядка, где мантисса находится в определенном диапазоне. Она обеспечивает наилучшее использование доступных битов для хранения информации о значении и масштабе числа, что максимизирует точность представления.
Что произойдет, если попытаться представить число, выходящее за диапазон представимых значений?
Если число слишком велико или слишком мало для представления в выбранном формате (одинарной или двойной точности), произойдет переполнение (overflow) или потеря значимости (underflow). В случае переполнения компьютер вернет бесконечность или наибольшее представимое число. В случае потери значимости число будет округлено до нуля.
1.2.2. Представление вещественных чисел