Sintaxi
doble NS ( doble base, doble exp);
El NS () funció es defineix a math.h fitxer de capçalera.
Arguments
Aquesta funció té dos arguments, base i exp, per calcular el valor de base elevat al poder de exp . Aquí base i exp tots dos són dobles.
Retorna els valors
En cas d 'èxit, el NS () la funció retorna el valor de base elevat al poder de exp .
Si el valor de exp és 0, el valor NS () la funció retorna 1.
Si base és negatiu i exp no és integral, el NS () torna la funció NaN (No és un número).
Exemples
//Example1.c#incloure
#incloure
intprincipal()
{
intresultat;
resultat= (int) NS (3,5);
printf (' npow (3,5) =>% d ',resultat);
printf (' npow (3, -5) =>% lf ', NS (3, -5));
printf (' npow (-3, -5) =>% lf ', NS (-3, -5));
printf (' npow (3,5,1) =>% lf ', NS (3,5.1));
printf (' npow (-3,5,1) =>% lf ', NS (-3,5.1));
printf (' npow (-3, -5,1) =>% lf n', NS (-3, -5.1));
tornar 0;
}
A Example1.c, hem vist la sortida del fitxer NS () funció. Aquí fem servir el fitxer -lm paràmetre de línia d'ordres per enllaçar a la biblioteca matemàtica. De les línies 10 a 13, obtenim la sortida tal com s’esperava. Per a les línies 14 i 15, tenim -nan (No és un número) perquè el segon argument no és integral.
Exponent mitjançant el canvi de bits
Si volem calcular l'exponent a la potència de 2, ho podem fer mitjançant el desplaçament de bits.
El desplaçament a l'esquerra en m equival al primer terme i 2 a la potència m.
n<< m = n * pow (2, m)
El desplaçament dret per m equival a la divisió del primer terme i 2 a la potència m.
n >> m = n / pow (2, m)
Només funciona quan m és positiu.
//Example2.c#incloure
intprincipal()
{
printf (' n1<%d',1<<3);
printf (' n5<%d',5<<3);
printf (' n-5<%d', -53 => %d', 40 >> 3);
printf (' n40>>3 => %d', 40 >> 3);
printf (' n-40>>3 => %d n', -40 >> 3);
retorn 0;
}
A l'Exemple2.c, hem vist com es pot utilitzar l'operador de desplaçament de bits per a l'exponent de la potència de 2. És molt útil reduir la complexitat del codi.
Exponent mitjançant la funció definida per l'usuari
Podem escriure una funció definida per l'usuari per calcular els exponents. A Example3.c, escriurem una funció definida per l'usuari exponent (), que pren dos arguments basats i exp del tipus float ant enter.
//Example3.c#incloure
surarexponent(surarbase, int exp )
{
surarresultat=1.0;
surarjo;
si( exp < 0)
{
exp = -1 * exp ;
per(jo=1;jo<= exp ;jo++)
resultat=resultat*base;
resultat= 1.0/resultat;
}
en cas contrari
{
per(jo=1;jo%f', exponent (3,0));
printf (' nexponent(3, -5) => %f', exponent (3, -5));
printf (' nexponent(-3, -5) => %f', exponent (-3, -5));
retorn 0;
}
Exemple3.c hem vist la sortida de la funció definida per l'usuari exponent () . Aquesta funció es treballa quan l'exponent és integral. Per a un exponent real, hem d'utilitzar el fitxer NS () funció.
Conclusió
En aquest article, hem vist utilitzar el fitxer NS () funció i Canvi de bits operador de com es pot calcular l'exponent en llenguatge C. També hem après a escriure la nostra pròpia funció per calcular els exponents. Ara podem utilitzar aquestes tècniques al nostre programa C sense cap mena de dubte.