В наиболее распространённом в настоящее время двойном
дополнительном коде
понятие отрицательного ноля отсутствует, что и сделало этот формат наиболее популярным.
Свойства
В
языках программирования
, таких как
C
,
C#
,
C++
и
Java
, хотя и возможно получить
отрицательный ноль
в качестве результата вычисления выражения, при сравнении отрицательный ноль равен положительному, поэтому простое сравнение не может быть использовано для определения того, является ли число
отрицательным нулём
. Для проверки на отрицательный ноль можно использовать
функцию
CopySign()
, определённую в
IEEE 754
, которая копирует знак числа (в данном случае нуля) в другое число (для проверки знака нужно взять ненулевое).
Для определения знака нуля можно также использовать
деление
:
(для положительного x);
(для положительного x).
Результат других операций с отрицательным нулём:
(для положительного x);
(для отрицательного x);
(для отрицательного x);
;
;
;
;
;
;
;
;
(для положительного x);
;
;
, где
NaN
(
англ.
Not-a-Number
) — машинное представление значения с неопределённым результатом;
Определения операций для нуля со знаком отражают свойства операций с
бесконечно малыми величинами
в
математическом анализе
, хотя не всегда точно соответствуют им. Так, например, свойства
,
, определённые в стандарте IEEE 754, не имеют математического обоснования.
Cowlishaw, Mike
(англ.)
. speleotrove.com (IBM Corporation) (7 апреля 2009). Дата обращения: 7 декабря 2010.
28 августа 2017 года.
Ссылки
(англ.)
.
MSDN
C# Language Specification
. Дата обращения: 15 октября 2005. Архивировано из
26 сентября 2009 года.
(англ.)
.
MSDN
C# Language Specification
. Дата обращения: 15 октября 2005. Архивировано из
3 декабря 2009 года.
(англ.)
.
General Decimal Arithmetic: Encoding Strawman 4d, version 0.96
. Дата обращения: 16 октября 2005. Архивировано из
16 октября 2006 года.
— десятичная спецификация чисел с плавающей точкой включающая отрицательный нуль
Charles Kittel, Herbert Kroemer, Thermal Physics, W. H. Freeman & Company, 1980
Для более углублённого изучения
Michael Ingrassia.
(англ.)
.
Sun Developer Network
. Дата обращения: 15 октября 2005. Архивировано из
5 сентября 2006 года.
— изменения в функции
SIGN
в
для работы с отрицательным нулём
(англ.)
.
MSDN
JScript
. Дата обращения: 16 октября 2005. Архивировано из
6 декабря 2005 года.
— арифметика с плавающей точкой в JScript содержит отрицательный нуль по определению
(англ.)
.
Javaworld
. Дата обращения: 16 октября 2005. Архивировано из
16 октября 2006 года.
— представление отрицательного нуля в
Java virtual machine
— как обращаться с отрицательным нулём при сравнении чисел с плавающей точкой
.
(англ.)
.
UNIVAC Memories
. Дата обращения: 17 октября 2005. Архивировано из
25 сентября 2006 года.
— Числа в одинарном дополнительном коде на семействе компьютеров
UNIVAC
1100.