Число с плавающей запятой состоит из:
Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0; 1). Число с плавающей запятой, находящееся не в нормальной форме теряет точность по сравнению с нормальной формой. Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах — 0,0001 * 100, 0,001 * 10-1, 0,01 * 10-2, 0,1 * 10-3), поэтому распространена (особенно в информатике) также другая форма, в которой мантисса принимает значения от 1 (включительно) до 10 (не включительно).
В вычислительных машинах показатель степени принято отделять от мантиссы буквой «E» (exponent). Например, число 1,528535047 × 10-25 в большинстве языков программирования высокого уровня записывается как 1.528535047E-25.
Существует несколько способов того, как строки из цифр могут представлять числа:
Побочным эффектом ограничения на значения мантиссы является то, что в такой записи невозможно изобразить число 0.
Таким образом, десятичная 9 в двоичном представлении с плавающей запятой будет записана как мантисса +1001000…0 и показатель +0…0100. Отсюда, например, беды с двоичным представлением чисел типа одной десятой (0,1), для которой двоичное представление мантиссы оказывается периодической двоичной дробью — по аналогии с 1/3, которую нельзя конечным количеством цифр записать в десятичной системе счисления.Запись числа в форме с плавающей запятой позволяет производить вычисления над широким диапазоном величин, сочетая фиксированное количество разрядов и точность. Например, в десятичной системе предоставления чисел с плавающей запятой (3 разряда) операцию умножения, которую мы бы записали как
в нормальной форме представляется в виде
В формате с фиксированной запятой мы бы получили вынужденное округление

Мы потеряли крайний правый разряд числа, так как данный формат не позволяет запятой «плавать» по записи числа.
Диапазон чисел, которые можно записать данным способом, зависит от количества бит, отведённых для представления мантиссы и показателя. На обычной 32-битной вычислительной машине, использующей двойную точность (64 бита), мантисса составляет 52 бита + 1 знаковый, показатель — 11 бит. Таким образом получаем диапазон точности примерно от 4,94 × 10 −324 до 1.79 × 10308 (от 2−52 × 2−1022 до ~1 × 21024). Пара значений показателя зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся значения бесконечность), получающихся в результате операций типа деления на ноль нуля, положительных и отрицательных чисел. Также сюда попадают денормализованные числа, у которых мантисса меньше единицы. В специализированных устройствах (например GPU) поддержка специальных чисел часто отсутствует.
Существуют программные пакеты, в которых объём памяти выделенный под мантиссу и показатель задаётся программно, и ограничивается лишь объёмом доступной памяти ЭВМ.
Число с плавающей запятой состоит из:
Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0; 1). Число с плавающей запятой, находящееся не в нормальной форме теряет точность по сравнению с нормальной формой. Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах — 0,0001 * 100, 0,001 * 10-1, 0,01 * 10-2, 0,1 * 10-3), поэтому распространена (особенно в информатике) также другая форма, в которой мантисса принимает значения от 1 (включительно) до 10 (не включительно).
В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0.
В вычислительных машинах показатель степени принято отделять от мантиссы буквой «E» (exponent). Например, число 1,528535047 × 10-25 в большинстве языков программирования высокого уровня записывается как 1.528535047E-25.
Существует несколько способов того, как строки из цифр могут представлять числа:

Побочным эффектом ограничения на значения мантиссы является то, что в такой записи невозможно изобразить число 0.
Запись числа в форме с плавающей запятой позволяет производить вычисления над широким диапазоном величин, сочетая фиксированное количество разрядов и точность. Например, в десятичной системе предоставления чисел с плавающей запятой (3 разряда) операцию умножения, которую мы бы записали как
в нормальной форме представляется в виде
В формате с фиксированной запятой мы бы получили вынужденное округление

Мы потеряли крайний правый разряд числа, так как данный формат не позволяет запятой «плавать» по записи числа.
Диапазон чисел, которые можно записать данным способом, зависит от количества бит, отведённых для представления мантиссы и показателя. На обычной 32-битной вычислительной машине, использующей двойную точность (64 бита), мантисса составляет 52 бита + 1 знаковый, показатель — 11 бит. Таким образом получаем диапазон точности примерно от 4,94 × 10−324 до 1.79 × 10308 (от 2−52 × 2−1022 до ~1 × 21024). Пара значений показателя зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся значения бесконечность), получающихся в результате операций типа деления на ноль нуля, положительных и отрицательных чисел. Также сюда попадают денормализованные числа, у которых мантисса меньше единицы. В специализированных устройствах (например GPU) поддержка специальных чисел часто отсутствует.
Существуют программные пакеты, в которых объём памяти выделенный под мантиссу и показатель задаётся программно, и ограничивается лишь объёмом доступной памяти ЭВМ.
Поскольку память компьютера ограничена, вы не можете хранить числа с бесконечной точностью, независимо от того, используете ли вы двоичные или десятичные дроби: в какой-то момент вы надо отрезать. Но какая точность нужна? А где нужен? Сколько целых цифр и сколько дробей?

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

Десятичные числа с плавающей запятой обычно принимают форму экспоненциальной записи с явная точка всегда между 1-й и 2-й цифрами. Показатель степени либо написано явно, включая базу, либо используется e для отделить его от мантиссы.
| Значимая | Экспонента | Научное обозначение | Значение фиксированной точки |
|---|---|---|---|
| 1,5 | 4 | 1,5 ⋅ 10 4 | 15000 |
| -2,001 | 2 | -2,001 ⋅ 10 2 | -200,1 |
| 5 | -3 | 5 ⋅ 10 -3 | 0,005 |
| 6,667 | -11 | 6.667е-11 | 0,00000000006667 |
Почти все аппаратные средства и языки программирования используют числа с плавающей запятой в тех же двоичных форматах, которые определены в стандарте IEEE 754.
Обычные форматы имеют общую длину 32 или 64 бита:
| Формат | Всего битов | Значимые биты | Биты экспоненты | Наименьшее число | Наибольшее число |
|---|---|---|---|---|---|
| Одинарная точность | 32 | 23 + 1 знак | 8 | ок. 1,2 ⋅ 10 -38 | ок. 3,4 ⋅ 10 38 |
| Двойная точность | 64 | 52 + 1 знак | 11 | ок. 2,2 ⋅ 10 -308 | ок. 1,8 ⋅ 10 308 |
Обратите внимание, что есть некоторые особенности:
Это и последовательность битов позволяют правильно сравнивать и сортировать числа с плавающей запятой, даже если они интерпретируются как целые числа.
Они представляют собой результат различных неопределенных вычислений (таких как умножение 0 на бесконечность, любые вычисления, включающие значение NaN, или случаи, специфичные для приложения). Даже идентичные по битам значения NaN должны считаться равными , а не .Если это кажется слишком абстрактным и вы хотите увидеть, как некоторые конкретные значения выглядят в IEE 754, попробуйте Float Toy, визуализацию IEEE 754 или Float Exposed.
© Опубликовано на сайте с плавающей точкой-gui.de под Creative Commons Attribution License (BY)
Метод хранения и вычисления чисел, в которых десятичные запятые не выстраиваются в ряд, как в числах с фиксированной запятой. Значимые цифры хранятся в виде единицы, называемой «мантисса», а положение точки счисления (десятичная точка в базе 10) хранится в отдельной единице, называемой «показатель степени». Методы с плавающей запятой используются для быстрого вычисления большого диапазона чисел.
Операции с плавающей запятой могут быть реализованы в программном обеспечении или в модуле с плавающей запятой (FPU), который может быть отдельной микросхемой «математического сопроцессора» или схемой в ЦП. См. математический сопроцессор, двоичные числа и NaN.
ПРИМЕРЫ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ
Значение экспоненты мантиссы
71 0 71
71 1 710
71 2 7100
71 -1 7,1
Как хранятся числа Существует четыре способа хранения чисел в компьютере, и в этом примере каждый из них содержит десятичное число 7100.
Реклама
{X-html заменен}
Выбор редакции
ЭТО ОПРЕДЕЛЕНИЕ ПРЕДНАЗНАЧЕНО ТОЛЬКО ДЛЯ ЛИЧНОГО ИСПОЛЬЗОВАНИЯ. Любое другое воспроизведение требует разрешения.Информационные бюллетени PCMag
Информационные бюллетени PCMag
Наши лучшие истории в вашем почтовом ящике
Следите за новостями PCMag
PCMag.
com является ведущим авторитетом в области технологий, предоставляющим независимые лабораторные обзоры новейших продуктов и услуг. Наш экспертный отраслевой анализ и практические решения помогут вам принимать более обоснованные решения о покупке и получать больше от технологий.
Как мы тестируем Редакционные принципы
(Открывается в новом окне)
PCMag поддерживает Group Black и ее миссию по увеличению разнообразия голосов в СМИ и владельцев СМИ.