Remarque : le type complexe a été introduit à partir de la norme c99, mais l'implémentation spécifique ne fait pas partie de la norme et est implémentée par chaque compilateur Les normes peuvent être différentes. Pour des informations spécifiques, veuillez vérifier les normes de mise en œuvre des compilateurs concernés. Cet article concerne le compilateur gcc.
Les nombres complexes sont très importants dans les opérations mathématiques. Lors de l'écriture d'opérations numériques ou d'algorithmes, nous utiliserons le concept de nombres complexes. Alors, comment les nombres complexes sont-ils représentés dans le langage C/C++ ? Nous les présenterons ensuite un par un.
Nombres complexes en langage C
En mathématiques, un nombre complexe peut être défini comme (z=a + bi). C
La langue a introduit les types pluriels avec ISO C99
. Il est défini via complex.h
. Nous pouvons utiliser des symboles de type complex
, __complex__
ou _ComplexI
pour le représenter. Il existe trois types de pluriels en langage C, à savoir float complex
, double complex
, long double complex
. La différence entre eux est que les types de données représentant la partie réelle et l'étape imaginaire des nombres complexes sont différents. complex
Il s'agit en fait d'un tableau. Il y a deux éléments dans le tableau, un représentant la partie réelle du nombre complexe et un représentant la partie imaginaire du nombre complexe.
Définir un pluriel
Dans le fichier d'en-tête complex.h
, deux macros _Complex_I
et I
sont définies pour créer un pluriel.
Macro: const float complex _Complex_I; Macro: const float complex I;
Ces deux macros représentent des nombres complexes (0+1i). Nous pouvons utiliser ce nombre complexe unitaire pour créer n'importe quel nombre complexe.
#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; }
Fonctions d'opération de base pour les nombres complexes
Dans le fichier d'en-tête complex.h
, certaines fonctions pour les opérations de base sur les nombres complexes sont définies.
函数 | 功能 |
---|---|
creal | 获取复数的实部 |
cimag | 获取复数的虚部 |
conj | 获取复数的共轭 |
carg | 获取,复平面上穿过原点和复数在复平面表示的点,的直线和实数轴之间的夹角 |
cproj | 返回复数在黎曼球面上的投影 |
Les opérations numériques sur les nombres complexes
Les types de nombres complexes peuvent également être effectués comme les types numériques ordinaires, ~int, double, long~ en utilisant directement l'opération numérique symboles.
a=3.000000+4.000000i b=4.000000+5.000000i c=5.000000+6.000000i the arg of a is 176
Merci à tous d'avoir lu. L'avez-vous appris ?
Cet article est reproduit à partir de : https://blog.csdn.net/duandianR/article/details/70846638
Tutoriel recommandé : "Langage C"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!