Экспоненциальная запись

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

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

[math]\displaystyle{ N = M \cdot n^p }[/math], где

Примеры:

1 000 000 (один миллион): [math]\displaystyle{ 1{,}0 \cdot 10^6 }[/math]; N = 1 000 000, M = 1,0, n = 10, p = 6.

1 201 000 (один миллион двести одна тысяча): [math]\displaystyle{ 1{,}201 \cdot 10^6 }[/math]; N = 1 201 000, M = 1,201, n = 10, p = 6.

−1 246 145 000 (минус один миллиард двести сорок шесть миллионов сто сорок пять тысяч): [math]\displaystyle{ -1{,}246145 \cdot 10^9 }[/math]; N = −1 246 145 000, M = −1,246145, n = 10, p = 9.

0,000001 (одна миллионная):[math]\displaystyle{ 1{,}0 \cdot 10^{-6} }[/math]; N = 0,000001, M = 1,0, n = 10, p = −6.

0,000000231 (двести тридцать одна миллиардная):[math]\displaystyle{ 231 \cdot 10^{-9} = 2{,}31 \cdot 100 \cdot 10^{-9} = 2{,}31 \cdot 10^2 \cdot 10^{-9} = 2{,}31 \cdot 10^{-9 + 2} = 2{,}31 \cdot 10^{-7} }[/math]; N = 0,000000231, M = 2,31, n = 10, p = −7.

В логарифмических таблицах значения десятичных логарифмов чисел и функций также представлены мантиссами (порядок логарифма вычисляется без труда)[1].

Нормализованная запись

Любое данное число может быть записано в виде [math]\displaystyle{ M\cdot 10^p }[/math] многими путями; например 350 может быть записано как [math]\displaystyle{ 3{,}5\cdot 10^2 }[/math] или [math]\displaystyle{ 35\cdot 10^1 }[/math].

В нормализованной научной записи порядок [math]\displaystyle{ p }[/math] выбирается такой, чтобы абсолютная величина [math]\displaystyle{ M }[/math] оставалась не меньше единицы, но строго меньше десяти ([math]\displaystyle{ 1\leq|M|\lt 10 }[/math]). Например, 350 записывается как [math]\displaystyle{ 3{,}5\cdot 10^2 }[/math]. Этот вид записи, называемый также стандартным видом, позволяет легко сравнивать два числа. Кроме того, он удобен для десятичного логарифмирования: целая часть логарифма, записанного «в искусственной форме», равна порядку числа, дробная часть логарифма определяется из таблицы только по мантиссе, что было крайне важным до массового распространения калькуляторов в 1970-х годах.

В инженерной нормализованной записи (в том числе в информатике), мантисса обычно выбирается в пределах [math]\displaystyle{ 0{,}1\lt |a|\leqslant1 }[/math]: [math]\displaystyle{ 350=0,35\cdot 10^3 }[/math][источник не указан 1678 дней].

В некоторых калькуляторах, как опция, может быть использована запись с мантиссой [math]\displaystyle{ 1\leq|a|\lt 1000 }[/math] и с порядком, кратным 3, так, например, [math]\displaystyle{ 3{,}52\cdot 10^{-8} }[/math] записывается как [math]\displaystyle{ 35{,}2\cdot 10^{-9} }[/math]. Такая запись проста для чтения ([math]\displaystyle{ 640\cdot 10^{6} }[/math] легче прочесть, как «640 миллионов», чем [math]\displaystyle{ 6{,}4\cdot 10^{8} }[/math]) и удобна для выражения физических величин в единицах измерения с десятичными приставками: кило-, микро-, тера- и так далее.

Экспоненциальная запись числа в компьютере

Представление чисел в приложениях

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

На компьютере (в частности в языках программирования высокого уровня) числа в экспоненциальном формате (его ещё называют научным) принято записывать в виде MEp, где:

M — мантисса,

E — экспонента (от англ. «exponent»), означающая «·10^» («…умножить на десять в степени…»),

p — порядок.

Например:

[math]\displaystyle{ \text{1,602176565E-19} = 1{,}602176565\cdot 10^{-19} }[/math] (элементарный заряд в Кл);

[math]\displaystyle{ \text{1,380650424E-23} = 1{,}380650424\cdot10^{-23} }[/math] (Постоянная Больцмана в Дж/К);

[math]\displaystyle{ \text{6,02214129E23} = 6{,}02214129\cdot10^{23} }[/math] (число Авогадро).

В программировании часто используют символ «+» для неотрицательного порядка и ведущие нули, а в качестве десятичного разделителя — точку:

[math]\displaystyle{ \text{1.048576E+06} = 1\,048\,576; ~\text{3.14E+00} = 3,14 }[/math].

Для улучшения читаемости иногда используют строчную букву e: [math]\displaystyle{ \text{6,02214129e23} }[/math]

ГОСТ 10859-64 "Машины вычислительные. Коды алфавитно-цифровые для перфокарт и перфолент"[en] вводил специальный символ для экспоненциальной записи числа "⏨", представляющий собой число 10, написанное мелким шрифтом на уровне строки. Такая запись должна была использоваться в АЛГОЛе. Этот символ включён в Unicode 5.2 с кодом U+23E8 "Decimal Exponent Symbol"[2]. Таким образом, например, современное значение скорости света могло быть записано как 2.99792458⏨+08 м/с.

Внутренний формат представления чисел

Внутренний формат представления вещественных чисел в компьютере тоже является экспоненциальным, но основанием степени выбрано число 2 вместо 10. Это связано с тем, что все данные в компьютере представлены в двоичной форме (битами). Под число отводится определённое количество компьютерной памяти (часто это 4 или 8 байт). Там содержится следующая информация:

  • Знаковый бит (он обычно занимает старшее место), который указывает знак числа. Установленный бит говорит о том, что число отрицательное (исключение может составлять число ноль — иногда он тоже может иметь установленный знаковый бит).
  • Порядок — целое число, которое задаёт нужную степень двойки. Обычно это не истинная величина порядка, а сдвинутая на некоторую константу таким образом, чтобы число было неотрицательным. Так, наименьший возможный порядок (он отрицательный) представлен числом 0.
  • Мантисса (обычно за исключением старшего бита, который всегда установлен в нормализованном числе).

Более подробно форматы представления чисел описаны стандартом IEEE 754-2008.

Следует заметить, что представление вещественных чисел по стандарту IEEE 754 появилось относительно недавно, и на практике можно встретить и другие форматы. Например, в IBM System/360 (1964 г., советский аналог – ЕС ЭВМ) основание системы счисления для вещественных чисел было равно 16, а не 2, и для сохранения совместимости эти форматы поддерживаются во всех последующих мэйнфреймах IBM, включая выпускаемые по сей день машины архитектуры z/Architecture (в последних поддерживаются также десятичные и двоичные вещественные числа).

Примечания

Ссылки