Научная запись числа

Рубрика:  Компьютерная математикаОсновы

Даётся определение экспоненциальной и научной записи числа. Приводятся примеры десятичной и двоичной записи (в двоичной системе счисления). Для полного понимания статьи читатель должен владеть двоичной системой счисления и уметь переводить произвольное десятичное число (в том числе дробное) в двоичную запись.

Базовое определение

Любое десятичное число, назовём его $z$, можно представить в так называемой экспоненциальной записи: $$ z = m \times b^{e}, $$ где $m$ - мантисса, $b$ - основание показательной функции, а $e$ - порядок (экспонента). Такое представление не является единственно возможным, поскольку различные комбинации мантиссы, основания и порядка могут давать одно и то же число. Например, 123 = 1,23×102 = 3×411 = 123000×10-3 = 123×20. Среди всех таких экспоненциальных записей нас будет интересовать двоичная и десятичная, то есть основание $b$ может быть равно либо 2, либо 10.

Когда основание $b=10$, в компьютерных программах принимается запись чисел в одну строку, используя символ e (или E) для обозначения порядка показательной функции. Например, 1,23×102 = 1,23e2, 123000×10-3 = 123000e-3 или 765,43×105 = 765,43E5.

Нормализованная (научная) нотация

Экспоненциальная запись называется нормализованной, когда $1 \leq |m| < b$. Для случая $b=10$ это значит, что абсолютное значение мантиссы представляет собой (возможно, дробное) число между единицей и десятью (не достигая десяти). Например, −123,456 = −1,23456×102. Такое представление чисел также называют научным. Любое десятичное число может быть представлено в такой научной нотации единственным образом.

Для $b=2$ ситуация несколько сложнее. Дело в том, что в десятичной записи нам достаточно сдвинуть запятую влево или вправо (деля или умножая на 10) добиваясь выполнения условия $1 \leq |m| < 10$, тогда как для получения нормализованной нотации с основанием 2 нужно делить или умножать число на 2 до тех пор, пока мы не добьёмся выполнения условия $1 \leq |m| < 2$. Например, 17,125 = 1,0703125×24. Другой пример: 0,01 = 1,28×2−7.

Двоичная научная нотация

Поскольку в компьютерной арифметике числа представляются в двоичном формате (реже в двоично-десятичном), то нам потребуется перевести число из десятичной записи в двоичную. Кажется, что это сделать очень просто, например, 17,125(10) = 10001,001(2) = 1,0001001(2)×24. Однако основная проблема здесь заключается в том, что не каждая конечная десятичная дробь будет иметь конечную форму записи в двоичной нотации. Например, 0,1(10) = 0,0(0011)(2) = 1,1(0011)(2)×2−4. То есть здесь мы получаем бесконечную периодическую дробь, с периодом 0011. Этот факт невозможности точного представления десятичной дроби в двоичной системе нужно очень хорошо понимать при детальном исследовании компьютерной арифметики.

Примеры

Вы можете проверить себя, разобрав примеры ниже.

z = 100
dec: 1×102
bin: 1,100100×26

z = 31,6875
dec: 3,16875×101
bin: 1,11111011×24

z = 0,296875
dec: 2,96875×10−1
bin: 1,0011×2−2

z = 0,7
dec: 7,0×10−1
bin: 1,(0110)×2−1

z = 3,1415926536…
dec: 3,1415926536…×100
bin: 1,1001001000011111101101…×21