−0 (програмування)

−0 (Від'ємний нуль) у програмуванні — число, що виникає при обчисленнях з рухомою комою (а також у деяких варіантах подання цілих зі знаком).

Представлення

У 1+7 — бітному поданні чисел зі знаком, від'ємний нуль представляється двійковим значенням 10000000 в прямому коді. У 8-бітному одинарному оберненому коді −0 представляється двійковим значенням 11111111. У стандарті подання чисел з рухомою комою IEEE 754, від'ємний нуль представляється нульовою експонентою і мантисою, та знаковим бітом, що дорівнює одиниці.

У найбільш поширеному на сьогодні подвійному доповняльному коді поняття «негативний нуль» відсутнє, що і зробило цей формат найбільш популярним.

Властивості

У таких мовах програмування, як C, C#, C++ і Java, хоча й можливо отримати від'ємний нуль як результат обчислення виразу, при порівнянні від'ємний нуль дорівнює позитивному, тому просте порівняння не може бути використано для визначення того, чи є число негативним нулем. Для перевірки на від'ємний нуль можна використовувати функцію CopySign () , визначену в IEEE 754, яка копіює знак числа (у цьому випадку нуля) в інше число (для перевірки знака потрібно взяти ненульове).

Для визначення знака нуля можна також використовувати ділення:

  • (для додатного x)
  • (для додатного x)

Результат інших операцій з від'ємним нулем:

  • (для додатного x)
  • (для від'ємного x)
  • (для від'ємного x)
  • (для додатного x)

Посилання

Для детальнішого вивчення

Див. також