подписанные значения NaN - PullRequest
       10

подписанные значения NaN

4 голосов
/ 11 января 2012

На основании спецификации "IEEE": "Когда входом или результатом является NaN, этот стандарт не интерпретирует знак NaN".Однако printf печатает NaN значения как подписанные: nan или -nan Может кто-нибудь указать мне набор правил (из спецификации?), Когда nan и когда напечатано -nan Например, я проверил, чтоprintf(-1.0f) отпечатков -nan Спасибо

1 Ответ

5 голосов
/ 11 января 2012

Базовое представление NaN содержит знаковый бит, и именно на это printf смотрит, решая, должен ли он печатать минус или нет.

Причина, по которой стандарт гласит, что знаковый бит следует игнорировать, заключается в том, чтобы позволить таким вещам, как отрицать или абсолютный , просто изменить знаковый бит, без необходимости проверять, является ли входное значение было NaN.

...