Значащая часть [ 1] (также коэффициент , [1] иногда аргумент , или более двусмысленно мантисса , [2] дробь , [3] [4] [nb 1] или характеристика [5] [2] ) — первая (левая) часть числа в научной нотации или связанных с ней концепциях в представлении с плавающей точкой , состоящая из его значащих цифр . В зависимости от интерпретации показателя степени , значащая часть может представлять целое или дробное число .
Число 123,45 можно представить в виде десятичного числа с плавающей точкой с целым числом 12345 в качестве мантиссы и степенным членом 10−2, также называемым характеристиками , [ 6] [7] [8], где −2 — показатель степени (а 10 — основание). Его значение определяется следующей арифметикой:
Это же значение можно представить в научной записи с мантиссом 1,2345 в качестве дробного коэффициента и показателем степени +2 (и основанием 10):
Однако Шмид назвал это представление со значащей частью в диапазоне от 1,0 до 10 модифицированной нормализованной формой . [7] [8]
Для основания 2 эта форма 1.xxxx также называется нормализованной мантиссой .
Наконец, значение может быть представлено в формате, заданном стандартом Language Independent Arithmetic и несколькими стандартами языков программирования, включая Ada , C , Fortran и Modula-2 , как
Шмид назвал это представление со значащей частью в диапазоне от 0,1 до 1,0 истинной нормализованной формой . [7] [8]
Для нормализованного числа самая значимая цифра всегда не равна нулю. При работе в двоичном формате это ограничение однозначно определяет, что эта цифра всегда равна 1. Таким образом, она явно не хранится, а называется скрытым битом .
Мантисса характеризуется своей шириной в (двоичных) цифрах , и в зависимости от контекста скрытый бит может или не может быть учтен в ширине. Например, тот же формат двойной точности IEEE 754 обычно описывается как имеющий либо 53-битную мантиссу, включая скрытый бит, либо 52-битную мантиссу, [ требуется ссылка ] исключая скрытый бит. IEEE 754 определяет точность p как количество цифр в мантиссе, включая любой неявный ведущий бит (например, p = 53 для формата двойной точности), таким образом, независимо от кодировки, и термин для выражения того, что кодируется (то есть мантисса без ее ведущего бита), является полем конечной мантиссы .
В 1914 году Леонардо Торрес Кеведо представил арифметику с плавающей точкой в своих «Очерках об автоматике» [9] , где он предложил формат n ; m , показав необходимость фиксированного размера мантиссы, который в настоящее время используется для данных с плавающей точкой. [10]
В 1946 году Артур Беркс использовал термины мантисса и характеристика для описания двух частей числа с плавающей точкой ( Беркс [6] и др. ) по аналогии с распространенными в то время таблицами десятичных логарифмов : характеристика — это целая часть логарифма (т. е. показатель степени), а мантисса — дробная часть. Использование этого термина остается распространенным среди компьютерных специалистов и сегодня.
Термин «значимая часть» был введен Джорджем Форсайтом и Кливом Молером в 1967 году [11] [12] [13] [4] и является словом, используемым в стандарте IEEE [14] как коэффициент перед числом в научной нотации, обсуждавшимся выше. Дробная часть называется дробью .
Чтобы понять оба термина, обратите внимание, что в двоичной системе 1 + мантисса ≈ мантисса, и соответствие точное при сохранении степени двойки. Этот факт позволяет быстро аппроксимировать логарифм по основанию 2, что приводит к алгоритмам, например, для вычисления быстрого квадратного корня и быстрого обратного квадратного корня . Неявная ведущая 1 — это не что иное, как скрытый бит в плавающей точке IEEE 754, а битовое поле, хранящее остаток, таким образом, является мантиссой .
Однако, включена ли неявная 1 или нет, является основным моментом путаницы с обоими терминами, и особенно с мантиссой . В соответствии с первоначальным использованием в контексте таблиц журналов, она не должна присутствовать.
Для тех контекстов, где 1 считается включенным, Уильям Кахан [1] , ведущий создатель IEEE 754, и Дональд Э. Кнут , выдающийся программист и автор книги «Искусство программирования» , [5] осуждают использование мантиссы . Это привело к снижению использования термина мантисса во всех контекстах. В частности, текущий стандарт IEEE 754 не упоминает его.
[…] m — мантисса или коэффициент или (ошибочно) мантисса […](8 страниц)
[…] В представлении с плавающей точкой число x представлено двумя знаковыми числами m и e такими, что x = m · b e , где m — мантисса, e — показатель степени , а b — основание . […] Мантисса иногда называется характеристикой, и версия показателя степени также носит это название у некоторых авторов. Надеемся, что термины здесь будут однозначными. […] [мы] используем значение [n показателя степени], которое смещено на половину двоичного диапазона числа. […] Эту специальную форму иногда называют смещенной экспонентой , поскольку она представляет собой обычное значение плюс константа. Некоторые авторы называют ее характеристикой, но этот термин не следует использовать, поскольку CDC и другие используют этот термин для мантиссы. Ее также называют представлением « избытка - », где, например, - равно 64 для 7-битного показателя степени (2 7−1 = 64). […](Примечание. Гослинг вообще не упоминает термин «сигнитисанд».)
[…] Иногда для этой цели используются и другие названия, в частности «характеристика» и «мантисса»; но называть дробную часть мантиссой — это злоупотребление терминологией, поскольку этот термин имеет совершенно иное значение в связи с логарифмами. Более того, английское слово mantissa означает «бесполезное сложение». […]
[…] Несколько цифровых компьютеров, которые строятся или планируются в этой стране и Англии, должны содержать так называемую "
плавающую десятичную точку
". Это механизм для выражения каждого слова как
характеристики
и
мантиссы
— например, 123,45 будет переноситься в машине как (0,12345,03), где 3 — это показатель степени 10, связанный с числом. […]
[…] Этот термин был введен
Форсайтом
и
Молером
[1967] и в целом заменил старый термин
мантисса
. […]
(Примечание. Более новую отредактированную версию можно найти здесь: [1])