Sintaksa
dvojno NS ( dvojno baza, dvojno exp);
The NS () funkcija je definirana v math.h naslovno datoteko.
Argumenti
Ta funkcija ima dva argumenta, bazo in exp, za izračun vrednosti bazo dvignili na moč eksp . Tukaj bazo in eksp oba sta dvojna.
Vrnjene vrednosti
O uspehu, NS () funkcija vrne vrednost bazo dvignili na moč eksp .
Če je vrednost eksp je 0, NS () funkcija vrne 1.
Če bazo je negativno in eksp ni integralno, NS () funkcija vrne NaN (Ne-številka-A).
Primeri
//Primer1.c#vključi
#vključi
intglavni()
{
intrezultat;
rezultat= (int) NS (3,5);
printf (' npow (3,5) => %d ',rezultat);
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));
vrnitev 0;
}
V primeru 1.c smo videli izhod NS () funkcijo. Tukaj uporabljamo -lm parameter ukazne vrstice za povezavo v matematični knjižnici. Od vrstic 10 do 13 smo dobili pričakovane rezultate. Za vrstici 14 in 15 imamo -nan (Ne številka), ker drugi argument ni integralni.
Eksponent z uporabo bitnega premika
Če želimo izračunati eksponent na moč 2, lahko to naredimo s premikom bitov.
Levi premik za m je enakovreden prvemu izrazu in 2 za moč m.
n<< m = n*pow (2, m)
Desni premik za m je enakovreden delitvi prvega člena in 2 za moč m.
n >> m = n/pow (2, m)
Deluje le, če je m pozitiven.
//Primer2.c#vključi
intglavni()
{
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);
vrnitev 0;
}
V primeru2.c smo videli, kako lahko operater bitnega premika uporabimo za eksponent na stopnji 2. Zelo koristno je zmanjšati kompleksnost kode.
Eksponent z uporabo uporabniško določene funkcije
Za izračun eksponentov lahko napišemo uporabniško definirano funkcijo. V primeru3.c bomo napisali uporabniško definirano funkcijo eksponent (), ki upošteva dva argumenta in exp tipa float ant integer.
//Primer3.c#vključi
plavatieksponent(plavatibazo, int eksp )
{
plavatirezultat=1,0;
plavatijaz;
če( eksp < 0)
{
eksp = -1 * eksp ;
za(jaz=1;jaz<= eksp ;jaz++)
rezultat=rezultat*bazo;
rezultat= 1,0/rezultat;
}
drugače
{
za(jaz=1;jaz%f', eksponent (3,0));
printf (' nexponent(3, -5) => %f', eksponent (3, -5));
printf (' nexponent(-3, -5) => %f', eksponent (-3, -5));
vrnitev 0;
}
Primer3.c smo videli izhod uporabniško določene funkcije eksponent () . Ta funkcija deluje, ko je eksponent integral. Za pravi eksponent moramo uporabiti NS () funkcijo.
Zaključek
V tem članku smo videli uporabo NS () funkcijo in Malo premikanje operator, kako lahko eksponent izračunamo v jeziku C. Naučili smo se tudi, kako sami napisati svojo funkcijo za izračun eksponentov. Zdaj lahko te tehnike brez dvoma uporabimo v našem programu C.