名前空間
変種
操作

std::signbit

From cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(C++11)  
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
指数関数
(C++11)
(C++11)

(C++11)
(C++11)
べき乗関数
(C++11)
(C++11)
三角関数と
双曲線関数
(C++11)
(C++11)
(C++11)

誤差関数とガンマ関数
(C++11)
(C++11)
(C++11)
(C++11)
最近接整数への浮動小数点数操作
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮動小数点数の操作関数
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類と比較
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
signbit
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
マクロ定数
分類
(C++11)(C++11)(C++11)(C++11)(C++11)


 
ヘッダー <cmath> で定義
(1)
bool signbit( float num );

bool signbit( double num );

bool signbit( long double num );
(C++11以降)
(C++23まで)
constexpr bool signbit( /*浮動小数点型*/ num );
(C++23から)
ヘッダー <simd> で定義
template< /*math-floating-point*/ V >

constexpr typename /*deduced-simd-t*/<V>::mask_type

  signbit ( const V& v_num );
(S) (C++26以降)
ヘッダー <cmath> で定義
template< class Integer >
bool signbit( Integer num );
(A) (C++11以降)
(C++23 以降 constexpr)
1) 指定された浮動小数点数 num が負であるかどうかを判断します。 パラメータ num の型について、ライブラリはすべての cv 修飾されていない浮動小数点型に対するオーバーロードを提供します。(C++23 以降)
S) SIMD オーバーロードは、v_num に対して要素ごとの std::signbit を実行します。
(定義については、math-floating-point および deduced-simd-t を参照してください。)
(C++26以降)
A) すべての整数型に対する追加のオーバーロードが提供されます。これらは double として扱われます。

目次

[編集] パラメータ

num - 浮動小数点数または整数値
v_num - 要素型が浮動小数点型である std::basic_simd の特殊化のデータ並列オブジェクト

[編集] 戻り値

1) true の場合、num は負です。false の場合、それ以外です。
S) i 番目の要素が、範囲 [0v_num.size()) のすべての i について、v_num[i] が負の場合は true、それ以外の場合は false となる、データ並列マスクオブジェクト。

[編集] 注記

この関数は、ゼロ、無限大、NaN の符号ビットを検出します。std::signbit は、std::copysign とともに、NaN の符号を調べることができる数少ないポータブルな方法の 2 つです。

追加のオーバーロードは、正確に (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

[編集] 関連項目

浮動小数点数値の絶対値 (|x|)
(関数) [編集]
(C++11)(C++11)(C++11)
浮動小数点数値の符号をコピーする
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)