Научная запись — это способ выражения чисел , которые слишком велики или слишком малы для удобной записи в десятичной форме , поскольку для этого потребуется записать неудобно длинную строку цифр. В Соединенном Королевстве ее можно называть научной формой , стандартной индексной формой или стандартной формой . Эта десятичная система записи обычно используется учеными, математиками и инженерами, отчасти потому, что она может упростить некоторые арифметические операции . В научных калькуляторах этот режим обычно называется режимом отображения «SCI».
В научной записи ненулевые числа записываются в виде
или m , умноженное на десять, возведенное в степень n , где n — целое число , а коэффициент m — ненулевое действительное число (обычно от 1 до 10 по абсолютной величине и почти всегда записывается в виде конечной десятичной дроби ). Целое число n называется показателем степени , а действительное число m называется мантиссой или мантиссой . [1] Термин «мантисса» может быть неоднозначным, когда речь идет о логарифмах, поскольку это также традиционное название дробной части обыкновенного логарифма . Если число отрицательное, то перед m стоит знак минус , как в обычной десятичной записи. В нормализованной записи показатель степени выбирается так, чтобы абсолютное значение (модуль) мантиссы m было не менее 1, но меньше 10.
Десятичная система с плавающей запятой — это компьютерная арифметическая система, тесно связанная с научной записью.
Любое действительное число можно записать в виде m × 10 n разными способами: например, 350 можно записать как3,5 × 10 2 или35 × 10 1 или350 × 10 0 .
В нормализованной научной записи (так называемой «стандартной форме» в Соединенном Королевстве) показатель степени n выбирается так, чтобы абсолютное значение m оставалось по крайней мере единицей, но меньше десяти ( 1 ≤ | m | < 10 ). Таким образом, 350 записывается как3,5 × 10 2 . Эта форма позволяет легко сравнивать числа: числа с большими показателями степени (из-за нормализации) больше, чем числа с меньшими показателями, а вычитание показателей дает оценку количества порядков, разделяющих числа. Это также форма, которая требуется при использовании таблиц десятичных логарифмов . В нормализованной записи показатель степени n отрицательен для числа с абсолютным значением от 0 до 1 (например, 0,5 записывается как5 × 10 -1 ). 10 и показатель степени часто опускаются, если показатель степени равен 0. Для ряда чисел, которые необходимо сложить или вычесть (или иным образом сравнить), может быть удобно использовать одно и то же значение m для всех элементов ряда.
Нормализованная научная форма — это типичная форма выражения больших чисел во многих областях, если только не требуется ненормализованная или иначе нормализованная форма, такая как инженерная запись . Нормализованную экспоненциальную запись часто называют экспоненциальной записью , хотя последний термин является более общим и также применяется, когда m не ограничено диапазоном от 1 до 10 (как, например, в инженерной записи) и основаниями, отличными от 10 (например, 3,15 × 2 20 ).
Инженерная нотация (часто называемая «ENG» в научных калькуляторах) отличается от нормализованной научной нотации тем, что показатель степени n ограничен кратностью 3. Следовательно, абсолютное значение m находится в диапазоне 1 ≤ | м | < 1000, а не 1 ≤ | м | < 10. Хотя инженерная нотация схожа по своей концепции, ее редко называют научной нотацией. Инженерная нотация позволяет числам явно соответствовать соответствующим префиксам СИ , что облегчает чтение и устное общение. Например,12,5 × 10 −9 м можно прочитать как «двенадцать целых пять нанометров» и записать как12,5 нм , а его эквивалент в научном обозначении1,25 × 10 -8 м , скорее всего, будет прочитано как «одна целая, две, пять, умноженная на десять до отрицательных восьми метров».
Значимая цифра — это цифра в числе, которая увеличивает его точность. Сюда входят все ненулевые числа, нули между значащими цифрами и нули, которые считаются значащими . Ведущие и конечные нули не являются значащими цифрами, поскольку они существуют только для обозначения масштаба числа. К сожалению, это приводит к двусмысленности. НомерЧисло 1 230 400 обычно читается как состоящее из пяти значащих цифр: 1, 2, 3, 0 и 4, причем последние два нуля служат только заполнителями и не добавляют точности. Однако то же число можно было бы использовать, если бы последние две цифры также были точно измерены и оказались равными 0 – семи значащим цифрам.
Когда число преобразуется в нормализованную экспоненциальную запись, оно уменьшается до числа от 1 до 10. Все значащие цифры остаются, но нули-заполнители больше не требуются. Таким образом1 230 400 станет1,2304 × 10 6, если оно имело пять значащих цифр. Если бы число было известно до шести или семи значащих цифр, оно выглядело бы как1,230 40 × 10 6 или1,230 400 × 10 6 . Таким образом, дополнительным преимуществом экспоненциальной записи является однозначность числа значащих цифр.
В научных измерениях принято записывать все точно известные цифры измерения и оценивать хотя бы одну дополнительную цифру, если вообще имеется какая-либо информация о ее значении. Полученное число содержит больше информации, чем было бы без дополнительной цифры, которую можно считать значащей цифрой, поскольку она передает некоторую информацию, приводящую к большей точности измерений и агрегирования измерений (их сложение или умножение).
Дополнительную информацию о точности можно передать с помощью дополнительных обозначений. Часто бывает полезно знать, насколько точны последняя цифра или цифры. Например, принятое значение массы протона можно правильно выразить как1,672 621 923 69 (51) × 10 −27 кг , что является сокращением от( 1,67262192369 ± 0,00000000051 ) × 10-27 кг . Однако до сих пор неясно, была ли ошибка (5,1 × 10 −37 в данном случае) — это максимально возможная ошибка, стандартная ошибка или какой-либо другой доверительный интервал .
Калькуляторы и компьютерные программы обычно представляют очень большие или маленькие числа, используя экспоненциальную запись, а некоторые из них можно настроить для равномерного представления всех чисел таким образом. Поскольку надстрочные показатели степени, такие как 10 7, может быть неудобно отображать или печатать, буква «E» или «e» (от «показатель степени») часто используется для обозначения «умножения на десять, возведенного в степень», так что обозначение m E n для десятичной мантиссы m и целого показателя степени n означает то же самое, что m × 10 n . Например6,022 × 10 23 записывается как6.022E23
или6.022e23
, а1,6 × 10 −35 записывается как1.6E-35
или1.6e-35
. Несмотря на то, что эта сокращенная версия научной записи распространена в компьютерном выводе, некоторые руководства по стилю не рекомендуют использовать ее в опубликованных документах. [2] [3]
Большинство популярных языков программирования, включая Fortran , C / C++ , Python и JavaScript , используют нотацию «E», пришедшую из Fortran и присутствовавшую в первой версии, выпущенной для IBM 704 в 1956 году. [4] Обозначение E было уже использовалась разработчиками операционной системы SHARE (SOS) для IBM 709 в 1958 году. [5] Более поздние версии Фортрана (по крайней мере, начиная с FORTRAN IV с 1961 года) также используют букву «D» для обозначения чисел двойной точности в научной записи, [6] и более новые компиляторы Фортрана используют «Q» для обозначения четырехкратной точности . [7] Язык программирования MATLAB поддерживает использование букв «E» или «D».
В языке программирования АЛГОЛ 60 (1960) вместо буквы «Е» используется нижний индекс « 10 », например: . [8] [9] Это представляло проблему для компьютерных систем, которые не обеспечивали такой символ, поэтому АЛГОЛ W (1966) заменил символ одинарной кавычкой, например , [10] , а некоторые советские варианты Алгола позволяли использовать Кириллическая буква « ю », например . Впоследствии язык программирования АЛГОЛ 68 предоставил возможность выбора символов: , , , или . [11] Символ АЛГОЛ « 10 » был включен в советскую текстовую кодировку ГОСТ 10859 (1964 г.) и был добавлен в Unicode 5.2 (2009 г.) как U + 23E8 ⏨ СИМВОЛ ДЕСЯТИЧНОЙ ЭКСПОНЕНТА . [12]6.0221023
6.022'+23
6.022ю+23
E
e
\
⊥
10
Некоторые языки программирования используют другие символы. Например, Simula использует &
(или &&
долго ), как в6.022&23
. [13] Система Mathematica поддерживает сокращенную запись 6.022*^23
(оставляя букву E
для математической константы e ).
Первые карманные калькуляторы с поддержкой научной записи появились в 1972 году. [14] На дисплеях карманных калькуляторов 1970-х годов не было явного символа между мантиссой и показателем степени; вместо этого одна или несколько цифр оставались пустыми (например 6.022 23
, как в HP-25 ), или пара меньших и слегка приподнятых цифр была зарезервирована для показателя степени (например , как в Commodore PR100 ). В 1976 году пользователь калькулятора Hewlett-Packard Джим Дэвидсон ввел термин «декастепень» для экспоненты в научной записи, чтобы отличить ее от «нормальных» экспонент, и предложил букву «D» в качестве разделителя между мантиссой и экспонентой в машинописных числах (например, ); они получили некоторую популярность в сообществе пользователей программируемых калькуляторов. [15] Буквы «E» или «D» использовались в качестве разделителя научной записи в карманных компьютерах Sharp , выпущенных в период с 1987 по 1995 год, «E» использовалась для 10-значных чисел, а «D» использовалась для 20-значных двойных чисел. точные числа. [16] В калькуляторах серий Texas Instruments TI-83 и TI-84 (с 1996 г. по настоящее время) в качестве сепаратора используется небольшая прописная буква . [17]6.022 23
6.022D23
E
В 1962 году Рональд О. Уитакер из Rowco Engineering Co. предложил номенклатуру системы степени десяти, в которой показатель степени будет обведен кружком, например, 6,022 × 10 3 будет записано как «6,022③». [18]
В нормализованной научной нотации, в нотации E и в инженерной нотации - пробел (который при наборе текста может быть представлен пробелом нормальной ширины или тонким пробелом ), который разрешен только до и после «×» или перед «E». иногда опускается, хотя перед буквенным символом это делается реже. [19]
Преобразование числа в этих случаях означает либо преобразование числа в форму научной записи, преобразование его обратно в десятичную форму, либо изменение показательной части уравнения. Ничто из этого не меняет фактическое число, а только то, как оно выражено.
Сначала переместите точку десятичного разделителя n на достаточное количество мест , чтобы поместить значение числа в желаемый диапазон от 1 до 10 для нормализованного обозначения. Если десятичная дробь была перенесена влево, добавьте ; Направо, . Чтобы представить число× 10n
× 10−n
1 230 400 в нормализованной экспоненциальной записи десятичный разделитель будет перенесен на 6 цифр влево и добавлен, в результате чего× 106
1,2304 × 10 6 . НомерПри −0,004 0321 десятичный разделитель будет сдвинут на 3 цифры вправо, а не влево, и получитсяВ результате −4,0321 × 10 −3 .
Преобразуя число из экспоненциальной записи в десятичную, сначала удалите значок в конце, затем сдвиньте десятичный разделитель на n цифр вправо (положительное n ) или влево (отрицательное n ). Номер× 10n
Десятичный разделитель числа 1,2304 × 10 6 будет сдвинут на 6 цифр вправо и станет1 230 400 , в то время какДесятичный разделитель числа −4,0321 × 10 −3 будет сдвинут на 3 цифры влево и будет−0,004 0321 .
Преобразование между различными представлениями в научной записи одного и того же числа с разными экспоненциальными значениями достигается путем выполнения противоположных операций умножения или деления на степень десяти в мантиссе и вычитания или сложения единицы в экспоненте. Десятичный разделитель в мантиссе сдвигается на x позиций влево (или вправо), а x добавляется к показателю степени (или вычитается из него), как показано ниже.
Даны два числа в научной записи и
Умножение и деление выполняются по правилам работы с возведением в степень : и
Некоторые примеры: и
Сложение и вычитание требуют, чтобы числа были представлены с использованием одной и той же экспоненциальной части, чтобы мантиссу можно было просто складывать или вычитать:
Затем добавьте или вычтите мантиссы:
Пример:
Хотя десятичная система обычно используется для научных обозначений, можно использовать и степени других оснований, [25] основание 2 является следующим наиболее часто используемым.
Например, в научной системе счисления с основанием 2 число 1001 b в двоичном формате (= 9 d ) записывается как 1,001 b × 2 d 11 b или 1,001 b × 10 b 11 b с использованием двоичных чисел (или короче 1,001 × 10 11 , если двоичный контекст очевиден). [ нужна цитата ] В нотации E это записывается как 1,001 b E11 b (или короче: 1,001E11), причем буква «E» теперь означает «умножить на два (10 b ) в степени». Чтобы лучше отличить этот показатель по основанию 2 от показателя по основанию 10, показатель по основанию 2 иногда также обозначается буквой «B» вместо «E», [26] - сокращенное обозначение, первоначально предложенное Брюсом Аланом. Мартином из Брукхейвенской национальной лаборатории в 1968 году, [27] как в 1.001 b B11 b (или короче: 1.001B11). Для сравнения то же число в десятичном представлении : 1,125 × 2 3 (при использовании десятичного представления) или 1,125B3 (по-прежнему при использовании десятичного представления). Некоторые калькуляторы используют смешанное представление двоичных чисел с плавающей запятой, где показатель степени отображается как десятичное число даже в двоичном режиме, поэтому приведенное выше значение становится 1,001 b × 10 b 3 d или короче 1,001B3. [26]
Это тесно связано с представлением с плавающей запятой по основанию 2, обычно используемым в компьютерной арифметике, и использованием двоичных префиксов IEC (например, 1B10 для 1×2 10 ( киби ), 1B20 для 1×2 20 ( mebi ), 1B30 для 1х2 30 ( гиби ), 1Б40 для 1х2 40 ( тэби )).
Подобно «Б» (или «б» [28] ), буквы «Н» [26] (или «ч» [28] ) и «О» [26] (или «о», [28] или « C" [26] ) иногда также используются для обозначения умножения на 16 или 8 в степени , например: 1,25 = 1,40 h × 10 h 0 h = 1,40H0 = 1,40h0 или 98000 = 2,7732 o × 10 o 5 o = 2,7732o5 = 2,7732С5. [26]
Еще одно аналогичное соглашение для обозначения показателей степени по основанию 2 - это использование буквы «P» (или «p» для «степени»). В этой записи мантисса всегда должна быть шестнадцатеричной, тогда как показатель степени всегда должен быть десятичной. [29] Эта нотация может быть создана реализациями семейства функций printf в соответствии со спецификацией C99 и стандартом IEEE Std 1003.1 POSIX ( Единая спецификация Unix ) при использовании спецификаторов преобразования %a или %A . [29] [30] [31] Начиная с C++11 , функции ввода-вывода C++ также могли анализировать и печатать нотацию P. Между тем, эта нотация была полностью принята стандартом языка начиная с C++17 . [32] Swift от Apple также поддерживает его. [33] Это также требуется стандартом двоичных чисел с плавающей запятой IEEE 754-2008 . Пример: 1.3DEp42 представляет собой 1.3DE h × 2 42 .
Инженерную запись можно рассматривать как научную запись с основанием 1000.
Сэйр, Дэвид , изд. (15 октября 1956 г.). Система автоматического кодирования FORTRAN для IBM 704 EDPM: Справочное руководство программиста (PDF) . Нью-Йорк: Отдел прикладных наук и отдел исследований в области программирования, International Business Machines Corporation . стр. 9, 27 . Проверено 4 июля 2022 г.(2+51+1 стр.)
Он сообщает преобразователю входных данных, что преобразуемое поле представляет собой десятичное число в форме ~X.XXXXE ± YY, где E подразумевает, что значение ~x.xxxx должно быть масштабировано на десять в степени ±YY.(4 страницы) (Примечание. Это было представлено на заседании ACM 11–13 июня 1958 г.)
Digital Fortran 77 также допускает синтаксис Qsnnn, если поле показателя находится в пределах диапазона двойной точности T_floating. […] Константа REAL*16 — это базовая действительная константа или целочисленная константа, за которой следует десятичный показатель степени. Десятичный показатель степени имеет вид: Qsnn […] s — необязательный знак […] nn — строка десятичных цифр […] Этот тип констант доступен только в системах Alpha .Intel Fortran: Справочник по языку (PDF) . Корпорация Интел . 2005 [2003]. стр. 3-7–3-8, 3–10. 253261-003 . Проверено 22 декабря 2022 г.(858 страниц)Compaq Visual Fortran — Справочник по языку (PDF) . Хьюстон: Компьютерная корпорация Compaq . Август 2001 года . Проверено 22 декабря 2022 г.(1441 страница)
«6. Расширения: 6.1 Расширения, реализованные в GNU Fortran: 6.1.8 Буква-экспонента Q». Компилятор GNU Fortran. 12 июня 2014 г. Проверено 21 декабря 2022 г.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка )«Стандарт Юникод» (изд. версии 7.0.0) . Проверено 23 марта 2018 г.
Вандербург, Ричард С., изд. (ноябрь 1976 г.). «Декапауэр» (PDF) . 52-Notes – Информационный бюллетень Клуба пользователей SR-52 . 1 (6). Дейтон, Огайо: 1. V1N6P1 . Проверено 28 мая 2017 г. Декамощность - в январском выпуске журнала 65-Notes (V3N1p4) за 1976 год Джим Дэвидсон ( член Клуба пользователей HP-65 № 547) предложил термин «декамощность» в качестве дескриптора множителя степени десяти, используемого в дисплеях научных обозначений. Я собираюсь начать использовать ее вместо « экспоненты », что технически неверно, и буквы D для отделения «мантиссы» от декастепена для машинописных чисел, как также предлагает Джим. Например, [ sic ], которое отображается в экспоненциальной записи, как теперь будет писаться . Возможно, по мере того, как это обозначение будет становиться все более популярным, производители калькуляторов изменят сокращения на клавиатуре. EEX HP и EE TI можно изменить на ED (для ввода декапауэра).
[1] «Декапауэр». 52-Notes – Информационный бюллетень Клуба пользователей SR-52 . Том. 1, нет. 6. Дейтон, Огайо. Ноябрь 1976 г. с. 1 . Проверено 7 мая 2018 г.(Примечание. Термин «декапауэр» часто использовался в последующих выпусках этого информационного бюллетеня, по крайней мере, до 1978 года.)123−45
1.23 -43
1.23D-43
電言板6 PC-U6000 БИБЛИОТЕКА ПРОГРАММ[ Библиотека программ для телефонной платы 6 PC-U6000 ] (на японском языке). Том. 6. Университетский кооператив. 1993.
«Руководство программиста TI-83» (PDF) . Проверено 9 марта 2010 г.
«INTOUCH 4GL: Путеводитель по языку INTOUCH». Архивировано из оригинала 3 мая 2015 г.
Шестнадцатеричные литералы с плавающей запятой не были частью C++ до C++17, хотя их можно анализировать и печатать с помощью функций ввода-вывода, начиная с C++11: оба потока ввода-вывода C++, когда включен std::hexfloat, и потоки CI/O: std::printf, std::scanf и т. д. Описание формата см. в std::strtof.