Syntax
dvojnásobek NS ( dvojnásobek základna, dvojnásobek exp);
The NS () funkce je definována v math.h hlavičkový soubor.
Argumenty
Tato funkce má dva argumenty, základna a exp, pro výpočet hodnoty základna povýšen na moc zk . Tady základna a zk oba jsou dvojí.
Návratové hodnoty
Na úspěch, NS () funkce vrací hodnotu základna povýšen na moc zk .
Pokud hodnota zk je 0, NS () funkce vrací 1.
Li základna je negativní a zk není integrální, NS () funkce vrací NaN (Ne-číslo).
Příklady
// Příklad1.c#zahrnout
#zahrnout
inthlavní()
{
intvýsledek;
výsledek= (int) NS (3,5);
printf (' nprášek (3,5) => %d ',výsledek);
printf (' npow (3, -5) => %lf ', NS (3, -5));
printf (' npow (-3, -5) => %lf ', NS (-3, -5));
printf (' nprášek (3,5,1) => %lf ', NS (3,5.1));
printf (' npow (-3,5,1) => %lf ', NS (-3,5.1));
printf (' nprášek (-3, -5,1) => %lf n', NS (-3, -5.1));
vrátit se 0;
}
V příkladu1.c jsme viděli výstup souboru NS () funkce. Zde používáme -lm parametr příkazového řádku pro propojení v matematické knihovně. Z řádků 10 až 13 máme výstup podle očekávání. Pro linky 14 a 15 máme -nan (Není to číslo), protože druhý argument není integrální.
Exponent využívající Bit Shifting
Pokud chceme vypočítat exponent na mocninu 2, pak to můžeme udělat pomocí bitového řazení.
Levý posun o m je ekvivalentní prvnímu členu a 2 o mocninu m.
n<< m = n*prášek (2, m)
Pravý posun o m odpovídá dělení prvního členu a 2 o mocninu m.
n >> m = n/pow (2, m)
Je to práce pouze tehdy, když je m kladné.
// Příklad2.c#zahrnout
inthlavní()
{
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);
návrat 0;
}
V příkladu2.c jsme viděli, jak lze operátor bitového posunu použít pro exponent k síle 2. Je velmi užitečné snížit složitost kódu.
Exponent pomocí funkce definované uživatelem
Můžeme napsat uživatelem definovanou funkci pro výpočet exponentů. V příkladu3.c napíšeme uživatelem definovanou funkci exponent (), který má dva argumenty založené a exp typu float ant integer.
//Příklad3.c#zahrnout
plovákexponent(plovákzákladna, int zk )
{
plovákvýsledek=1,0;
plovákjá;
-li( zk < 0)
{
zk = -1 * zk ;
pro(já=1;já<= zk ;já++)
výsledek=výsledek*základna;
výsledek= 1,0/výsledek;
}
jiný
{
pro(já=1;já%F', exponent (3,0));
printf (' nexponent(3, -5) => %F', exponent (3, -5));
printf (' nexponent(-3, -5) => %F', exponent (-3, -5));
návrat 0;
}
Příklad3.c viděli jsme výstup funkce definované uživatelem exponent () . Tato funkce funguje, když je exponent integrální. Pro skutečného exponenta musíme použít NS () funkce.
Závěr
V tomto článku jsme viděli použití NS () funkce a Bitové řazení operátor, jak lze vypočítat exponent v jazyce C. Také jsme se naučili psát vlastní funkci pro výpočet exponentů. Nyní můžeme tyto techniky bez pochyb použít v našem programu C.