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

C++浮動小数点操作


10進数の数値実装は、浮動小数点数です。 C ++プログラミング言語では、floatのサイズは32ビットです。また、浮動小数点数を処理する浮動小数点操作関数がいくつかあります。ここでは、浮動小数点操作関数のいくつかを紹介しました。

fmod()

floatで動作するfmod()関数は、メソッドの渡された引数の除算の余りを返します。

#include <iostream>
#include <cmath>
using namespace std;
int main() {
   float a, b, rem;
   a = 23.4;
   b = 4.1;
   rem = fmod(a,b);
   cout<<"The value of fmod( "<<a<<" , "<<b<<" ) = "<<rem;
}
の値

出力

The value of fmod( 23.4 , 4.1 ) = 2.9

remainder()

remainder() 関数はfmod関数と同じ働きをします。そして、値の間の除算の余りを返します。このメソッドは、数値に関して可能な最小の余りを返します。マイナスになることもあります。

#include <iostream>
#include <cmath>
using namespace std;
int main() {
   float a, b, rem;
   a = 23.4;
   b = 4.1;
   rem = remainder(a,b);
   cout<<"The value of remainder( "<<a<<" , "<<b<<" ) = "<<rem;
}

出力

The value of remainder( 23.4 , 4.1 ) = -1.2

remquo()

このメソッドは、渡された2つの値の商と余りを返します。また、商の値を持つ変数への参照も必要です。したがって、このメソッドは、剰余関数と商の参照と同じように剰余を返します。

#include <iostream>
#include <cmath>
using namespace std;
int main() {
   float a, b, rem;
   int quo;
   a = 23.4;
   b = 4.1;
   rem = remquo(a,b,&quo);
   cout<<a<<" and "<<b<<" passed to the remquo() function gives the following output\n";
   cout<<"The remainder is "<<rem<<endl;
   cout<<"The quotient is "<<quo;
}

出力

23.4 and 4.1 pass to the the remque() function gives the following
output
The reminder is -1.2
The quotient is 6

copysign()

Cのcopysign関数は、他の変数の符号を持つ変数を返します。返される変数には、最初の変数の大きさと2番目の変数の符号があります。

#include <iostream>
#include <cmath>
using namespace std;
int main(){
   double a, b;
   a = 9.6;
   b = -3.5;
   cout<<"copysign function with inputs "<<a<<" and "<<b<<" is "<<copysign(a,b);
}
のcopysign関数

出力

Copysign function with inputs 9.6 and -3.5 is -9.6

fmin()

名前からわかるように、fmin関数は、関数の2つの引数の最小値を返します。リターンタイプはフロートです。

#include <iostream>
#include <cmath>
using namespace std;
int main(){
   double a, b;
   a = 43.5;
   b = 21.2;
   cout << "The smallest of "<<a<<" and "<<b<<" is "; cout << fmin(a,b)<<endl;
}

出力

The smallest of 43.5 and 21.2 is 21.2

fmax()

fmax関数は、引数の2つの数値の最大数を返すCプログラミング関数です。

#include <iostream>
#include <cmath>
using namespace std;
int main(){
   double a, b;
   a = 43.5;
   b = 21.2;
   cout << "The largest of "<<a<<" and "<<b<<" is "; cout << fmax(a,b)<<endl;
}

出力

The largest of 43.5 and 21.2 is 43.5

fdim()

Cプログラミング言語のfdim()関数は、関数の引数として送信される2つの数値の絶対差を返します。

#include <iostream>
#include <cmath>
using namespace std;
int main(){
   double a, b;
   a = 43.5;
   b = 21.2;
   cout << "The absolute difference of "<<a<<" and "<<b<<" is";
   cout << fdim(a,b)<<endl;
}

出力

The absolute difference of 43.5 and 21.2 is 22.3

fma()

fma() Cの関数は、与えられた引数の乗算を返します。この関数はfloatを返し、3つのfloating引数を受け入れます。

#include <iostream>
#include <cmath>
using namespace std;
int main(){
   double a, b, c;
   a = 3.5;
   b = 2.4;
   c = 7.2;
   cout << "The multiplication of "<<a<<" , "<<b<<" and "<<c<<" is ";
   cout << fma(a,b,c)<<endl;
}

出力

The multiplication of 3.5 , 2.4 and 7.2 is 15.6

これらはすべて、フローティングで操作される機能です。 -ポイント番号。これらは、cmathライブラリで定義されている関数です


  1. C++の別のポイントを中心としたポイントの回転

    原点を中心とした点Xの回転は、反時計回りに角度θで行われます。- 原点反clRotateockwiseについてのXbyθ:X * Polar(1.0、θ)。 ここで、複素数の関数polarはヘッダーファイルで定義され、位相角と大きさを使用して複素数を見つけるために使用されます。polar(mag、angle)は複素数を返します。 点Yを中心とした点Xの回転 ポイントを別のポイントを中心に回転させるには、すべての座標の移動が特定の方向に発生する平行移動を使用します。 XをYを中心に回転させる手順。 XをYに変換すると、Yが新しい原点になります。これは、すべてのポイントから

  2. C++のコンピュータグラフィックスにおけるポイントクリッピングアルゴリズム

    コンピュータグラフィックスは、コンピュータ画面に画像やグラフィックスを描画することを扱います。ここでは、画面を2次元座標系として扱います。この座標系は左上(0,0)から始まり、右下で終わります。 表示平面 コンピュータグラフィックスでグラフィックスを描画するために定義された領域です。または画面の表示領域。 クリッピングとは、表示面の外側にあるポイントまたはグラフィックを削除することです。 クリッピングを理解するために例を見てみましょう。 ここで、ポイントCとDは、青色でマークされた表示平面の外側にあるため、クリップされます。 コンピュータグラフィックスのポイントをクリップするた