"-0" ("Від'ємний нуль") у програмуванняпрограмуванні — число, що виникає при обчисленнях плаваюча комаз плаваючою комою (а також у деяких варіантах подання цілі числацілих зі знаком).
Представлення
У 1+7 — бітному поданні чисел зі знаком, від'ємний нуль представляється двійковим значенням 10000000 в прямому коді. У 8-бітному одинарному зворотний код (подання числа)зворотному коді −0 представляється двійковим значенням 11111111. У стандарті подання чисел з плаваючою комою IEEE 754, від'ємний нуль представляється нульовою експонентаекспонентою і мантисамантисой, та знаковий бітзнаковим бітом, що дорівнює одиниці.
У найбільш поширеному на сьогодні подвійному додатковий код (подання числа)додатковому коді поняття «негативний нуль» відсутнє, що і зробило цей формат найбільш популярним.
Властивості
У таких мова програмуваннямовах програмування, як C (мова програмування)C, C SharpC, C++ і Java, хоча й можливо отримати від'ємний нуль як результат обчислення виразу, при порівнянні від'ємний нуль дорівнює позитивному, тому просте порівняння не може бути використано для визначення того, чи є число негативним нулем. Для перевірки на від'ємний нуль можна використовувати функцію CopySign () , визначену в IEEE 754, яка копіює знак числа (в даному випадку нуля) в інше число (для перевірки знака потрібно взяти ненульове).
Для визначення знака нуля можна також використовувати ділення:
\;x / +0 = +\infty (для додатнього x)
\;x / -0 = -\infty (для додатнього x)
Результат інших операцій з від'ємним нулем:
\;-0 / x = -0 (для додатнього x)
\;-0 / x = +0 (для від'ємного x)
\;+0 / x = -0 (для від'ємного x)
\;-0 / +\infty = -0
\;-0 / -\infty = +0
\;+0 / -\infty = -0
\;-0 \cdot -0 = +0
\;-0 - +0 = -0
\;-0 - -0 = +0
\;+0 + -0 = +0
\;-0 + -0 = -0
\;x \cdot -0 = -0 (для додатнього x)
\;x + -0 = x
Посилання
— десяткова специфікація чисел с плаваючою комою, що включає негативний нуль
Charles Kittel, Herbert Kroemer, Thermal Physics, W. H. Freeman & Company, 1980
Для більш детального вивчення
— зміни в функції SIGN в Fortran 95 для роботи с негативним нулем
— арифметика с плаваючою комою в
JScript містить негативний нуль
— представлення негативного нуля в Java virtual machine
— как працювати з негативним нулем при порівнянні чисел з плаваючою комою
— Числа в одинарному додатковому коді на сімействі комп'ютерів UNIVAC 1100.
Див. також
Додатний нуль
Машинний нуль
uk.wikipedia.org