Spec-Zone.ru › C++

std::signbit

Определено в заголовке <cmath>
(1)
bool signbit( float num );
bool signbit( double num );
bool signbit( long double num );
(с C++11)
(до C++23)
constexpr bool signbit( /* floating-point-type */ num );
(с C++23)
Дополнительные перегрузки
Определено в заголовке <cmath>
template< class Integer >
bool signbit( Integer num );
(A) (с C++11)
(constexpr с C++23)
1) Определяет, является ли заданное число с плавающей точкой num отрицательным. Библиотека предоставляет перегрузки для всех типов чисел с плавающей точкой без квалификаторов cv в качестве типа параметра num.(с C++23)
A) Дополнительные перегрузки предоставляются для всех целочисленных типов, которые обрабатываются как double.

Параметры

num - число с плавающей точкой или целое значение

Возвращаемое значение

true если num отрицательное, false в противном случае.

Примечания

Эта функция определяет бит знака нулей, бесконечностей и NaN. Вместе с std::copysign, std::signbit является одним из двух единственных портативных способов проверить знак NaN.

Дополнительные перегрузки не обязаны быть предоставлены точно как (A). Они должны быть достаточными, чтобы для их аргумента num целочисленного типа std::signbit(num) имел тот же эффект, что и std::signbit(static_cast<double>(num)).

Пример

#include <cmath>
#include <iostream>
 
int main()
{
    std::cout << std::boolalpha
              << "signbit(+0.0) = " << std::signbit(+0.0) << '\n'
              << "signbit(-0.0) = " << std::signbit(-0.0) << '\n'
              << "signbit(+nan) = " << std::signbit(+NAN) << '\n'
              << "signbit(-nan) = " << std::signbit(-NAN) << '\n'
              << "signbit(+inf) = " << std::signbit(+INFINITY) << '\n'
              << "signbit(-inf) = " << std::signbit(-INFINITY) << '\n';
}

Вывод:

signbit(+0.0) = false
signbit(-0.0) = true
signbit(+nan) = false
signbit(-nan) = true
signbit(+inf) = false
signbit(-inf) = true

См. также

abs(float)fabsfabsffabsl
(C++11)(C++11)
абсолютное значение числа с плавающей точкой (\(|x|\)|x|)
(функция)
copysigncopysignfcopysignl
(C++11)(C++11)(C++11)
копирует знак числа с плавающей точкой
(функция)
C документация для signbit

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/math/signbit

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API