C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++のcopysign()関数とは?使い方と動作をわかりやすく解説

本記事では、C++におけるcopysign()関数の使い方と動作について詳しく解説します。

copysign()関数は、C++標準ライブラリに含まれる数学関数の一つです。2つの引数を受け取り、「第1引数の大きさ(絶対値)」と「第2引数の符号」を組み合わせた値を結果として返します。

この関数を使用するには、<math.h> または <cmath> ヘッダーファイルをインクルードする必要があります。

構文

copysign(x,y)

使用例

入力: copysign(4,-5)
出力: -4

解説:この例では、一方の値の符号をもう一方の値の大きさへコピーする仕組みを示しています。第2引数の符号「−」と、第1引数の大きさ「4」が組み合わさることで、結果は -4 となります。

使用例(小数の場合)

入力: copysign(-1.3,4.4)
出力: 1.3

解説:第2引数の符号「+」と、第1引数の大きさ「1.3」が組み合わさり、結果は 1.3 となります。この例から、copysign()関数には整数だけでなく小数も引数として渡せることがわかります。

プログラムの流れ

以下のサンプルプログラムでは、次の手順で処理を行います。

  • 2つの値を用意します。1つは大きさを利用する値、もう1つは符号を利用する値です。ここでは例として -1.12.3 を使用します。
  • 2つの値をcopysign()関数の引数として渡します。
  • 第1引数には大きさを利用したい値を、第2引数には符号を採用したい値を指定します。

サンプルコード

#include <iostream>
#include<cmath>
using namespace std;
int main() {
    cout<<copysign(-1.1,2.3);
    return 0;
}

実行結果

上記のコードを実行すると、次の出力が得られます。

1.1

// 第2引数の符号「+」と、第1引数の大きさ「1.1」が組み合わさり、結果として 1.1 が出力されます。

補足

copysign()関数には、float型専用の copysignf()、long double型専用の copysignl() も用意されており、引数の型に応じて適切なオーバーロードが選択されます。戻り値は引数と同じ浮動小数点型で返されるため、精度を気にせず安心して利用できます。符号の判定だけを目的とする場合に、条件分岐を書かずに簡潔に処理できるのが大きなメリットです。

  1. C++のlog()関数とは?自然対数を求める方法をわかりやすく解説

    C++の標準ライブラリには、数学的な計算を行うための便利な関数が多数用意されています。その中でもlog()関数は、数値の自然対数(ネイピア数 e を底とする対数)を求めるために使用される重要な関数です。log()関数の基本情報C/C++のライブラリ関数 double log(double x) は、引数 x の自然対数(底が e の対数)を返します。この関数を使用するには、ヘッダーファイル <cmath> をインクルードする必要があります。関数の宣言double log(double x)パラメータと戻り値パラメータ: x は浮動小数点型(double)の値です。自然対数を求めたい

  2. C++のswap()関数とは?2つの変数の値を入れ替える方法をサンプルコード付きで解説

    swap()関数とは C++のswap()関数は、2つの値を入れ替える(交換する)ための関数です。この関数を利用すれば、一時的な第三の変数を自分で用意することなく、2つの変数の値を簡単に入れ替えることができます。 swap()関数の構文 void swap(int variable_name1, int variable_name2); 変数に値を代入してswap()関数に渡した場合、関数内では値の入れ替えが行われますが、呼び出し元の実際の変数の値は変わりません。これは、引数が「値渡し」で渡されるためです。実際の変数の値を入れ替えたい場合は、後述する「参照渡し」を使用します。 例1:s