Меню
Главная
Случайная статья
Настройки
|
0 (отрицательный ноль) в программировании — число, возникающее при вычислениях с плавающей запятой компьютерного стандарта IEEE 754, который используется в большинстве современных компьютеров, (а также в некоторых вариантах представления целых со знаком). С математической точки зрения отрицательный ноль чаще-всего равен обычному нулю, хотя и существуют математические операции, когда проявляются их различия.[1]
Содержание
Представления
В 1+7-битном представлении чисел со знаком отрицательный ноль представляется двоичным значением 10000000 в прямом коде. В 8-битном одинарном обратном коде 0 представляется двоичным значением 11111111. В стандарте представления чисел с плавающей запятой IEEE 754, отрицательный ноль представляется нулевой экспонентой и мантиссой и знаковым битом равным единице.
В наиболее распространённом в настоящее время двойном дополнительном коде понятие отрицательного ноля отсутствует, что и сделало этот формат наиболее популярным.
Свойства
В языках программирования, таких как C, C#, C++ и Java, хотя и возможно получить отрицательный ноль в качестве результата вычисления выражения, при сравнении отрицательный ноль равен положительному, поэтому простое сравнение не может быть использовано для определения того, является ли число отрицательным нулём. Для проверки на отрицательный ноль можно использовать функцию CopySign() , определённую в IEEE 754, которая копирует знак числа (в данном случае нуля) в другое число (для проверки знака нужно взять ненулевое).
Для определения знака нуля можно также использовать деление:
- (для положительного x);
- (для положительного x).
Результат других операций с отрицательным нулём:
- (для положительного x);
- (для отрицательного x);
- (для отрицательного x);
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- (для положительного x);
- ;
- [2];
- , где NaN (англ. Not-a-Number) — машинное представление значения с неопределённым результатом;
- .
В математике
Определения операций для нуля со знаком отражают свойства операций с бесконечно малыми величинами в математическом анализе, хотя не всегда точно соответствуют им. Так, например, свойства , , определённые в стандарте IEEE 754, не имеют математического обоснования.
См. также
Примечания
- fmaster. Отрицательный ноль в JavaScript: разгадка тайн (рус.). Fcodenotes - блог о программировании (19 января 2024). Дата обращения: 10 августа 2025.
- Cowlishaw, Mike. Decimal Arithmetic: Arithmetic operations – square-root (англ.). speleotrove.com (IBM Corporation) (7 апреля 2009). Дата обращения: 7 декабря 2010. Архивировано 28 августа 2017 года.
Ссылки
Для более углублённого изучения
|
|