Подписанный ноль - ноль со связанным знаком.В обычной арифметике −0 = +0 = 0. Однако в вычислениях некоторые числовые представления допускают существование двух нулей, часто обозначаемых как -0 (отрицательный ноль) и +0 (положительный ноль).Это происходит в некоторых представлениях чисел со знаком для целых чисел и в большинстве представлений чисел с плавающей точкой.Число 0 обычно кодируется как +0, однако оно может быть представлено либо +0, либо -0.
Стандарт IEEE 754 для арифметики с плавающей точкой (в настоящее время используется большинством компьютеров и языков программирования, поддерживающих плавающую точкучисла) требует как +0, так и -0.Нули можно рассматривать как вариант расширенной строки действительных чисел, такой что 1 / −0 = −∞ и 1 / + 0 = + ∞, деление на ноль не определено только для ± 0 / ± 0.
Отрицательный ноль повторяет концепцию математического анализа приближения 0 снизу как одностороннего предела, который можно обозначить через x → 0−, x → 0− или x → ↑ 0.Обозначение «-0» может использоваться неофициально для обозначения небольшого отрицательного числа, которое было округлено до нуля.Концепция отрицательного нуля также имеет некоторые теоретические применения в статистической механике и других дисциплинах.
Утверждается, что включение нуля со знаком в IEEE 754 значительно упрощает достижение численной точности в некоторых критических задачах 1 в частности, при вычислениях со сложными элементарными функциями. [2]С другой стороны, концепция подписанного нуля противоречит общему предположению, сделанному в большинстве математических областей (и в большинстве курсов по математике), что отрицательный ноль - это то же самое, что и ноль.Представления, которые допускают отрицательный ноль, могут быть источником ошибок в программах, поскольку разработчики программного обеспечения не осознают (или могут забыть), что, хотя два нулевых представления ведут себя как равные при числовых сравнениях, они представляют собой разные битовые комбинации и в некоторыхоперации.