この記事は gcc コンパイラに関するものです。 複素数は数学演算において非常に重要です。数値演算やアルゴリズムを記述するときは、複素数の概念を使用します。では、C/C言語では複素数はどのように表現されるのでしょうか?次からは一つずつ紹介していきます。
C 言語の複素数数学では、複素数は (z=a bi) の形式で定義できます。
C 言語は、ISO C99
で複数の型を導入しました。これは complex.h
で定義されています。これを表すには、 complex
、 __complex__
、または _ComplexI
型表記を使用できます。 C 言語には、float complex
、double complex
、long double complex
という 3 つの複素数型があります。両者の違いは、複素数の実数部と虚数部を表すデータ型が異なることです。 complex
これは実際には配列です。配列には 2 つの要素があり、1 つは複素数の実数部を表し、もう 1 つは複素数の虚数部を表します。
2 つのマクロ
_Complex_I と が
complex.h ヘッダー ファイルで定義されていますI
で複数の番号を作成します。 <pre class="brush:php;toolbar:false;">Macro: const float complex _Complex_I;
Macro: const float complex I;</pre>
これら 2 つのマクロは複素数 (0 1i) を表します。この単位複素数を使用して任意の複素数を作成できます。
#include <stdio.h> #include <complex.h> int main(int argc, char *argv[]) { complex double a = 3.0 + 4.0 * _Complex_I; __complex__ double b = 4.0 + 5.0 * _Complex_I; _Complex double c = 5.0 + 6.0 * _Complex_I; printf("a=%f+%fi\n", creal(a),cimag(a)); printf("b=%f+%fi\n", creal(b), cimag(b)); printf("c=%f+%fi\n", creal(c), cimag(c)); printf("the arg of a is %d", carg(a)); return 0; }
a=3.000000+4.000000i b=4.000000+5.000000i c=5.000000+6.000000i the arg of a is 176複素数の基本演算関数
複素数の基本演算のための関数を
complex.h ヘッダー ファイルで定義します。
Function | |
---|---|
cimag | |
conj | |
carg | |
cproj | |
複素数型では、通常の数値型 ~int、double、long~ と同様に、数値演算シンボルを直接使用して数値演算を実行することもできます。
#include <stdio.h> #include <complex.h> int main(int argc, char *argv[]) { complex double a = 3.0 + 4.0 * _Complex_I; __complex__ double b = 4.0 + 5.0 * _Complex_I; _Complex double c = 5.0 + 6.0 * _Complex_I; complex double d =a + b; complex double f = a *b ; complex double g = a/b; printf ("d=a+b=%f+%fi\n",creal(d),cimag(d)); printf ("f=a*b=%f+%fi\n",creal(f),cimag(f)); printf("g=a/b=%f+%fi\n",creal(g),cimag(g)); return 0; }
d=a+b=7.000000+9.000000i f=a*b=-8.000000+31.000000i g=a/b=0.780488+0.024390i皆さん、読んでいただきありがとうございます。理解できましたか? この記事は以下から転載しています: https://blog.csdn.net/duandianR/article/details/70846638推奨チュートリアル: 「
C 言語
」以上がC言語による複素数演算を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。