Sintaxe
Duplo NS ( Duplo base, Duplo exp);
o NS () função é definida em math.h arquivo de cabeçalho.
Argumentos
Esta função leva dois argumentos, base e exp, calcular o valor de base elevado ao poder de exp . Aqui base e exp ambos são duplos.
Valores de retorno
Com sucesso, o NS () função retorna o valor de base elevado ao poder de exp .
Se o valor de exp é 0, o NS () função retorna 1.
Se base é negativo e exp não é integral, o NS () função retorna NaN (Não é um número).
Exemplos
//Example1.c#incluir
#incluir
inta Principal()
{
intresultado;
resultado= (int) NS (3,5);
printf (' npow (3,5) =>% d ',resultado);
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));
Retorna 0;
}
Em Example1.c, vimos a saída do NS () função. Aqui usamos o -lm parâmetro de linha de comando a ser vinculado à biblioteca matemática. Das linhas 10 a 13, obtivemos a saída conforme o esperado. Para as linhas 14 e 15, temos -nan (Não é um número) porque o segundo argumento não é integral.
Expoente usando deslocamento de bits
Se quisermos calcular o expoente à potência de 2, podemos fazê-lo usando o deslocamento de bits.
O deslocamento à esquerda em m é equivalente ao primeiro termo e 2 à potência m.
n<< m = n * pow (2, m)
O deslocamento à direita por m é equivalente à divisão do primeiro termo e 2 à potência m.
n >> m = n / pow (2, m)
Só funciona quando m é positivo.
//Example2.c#incluir
inta Principal()
{
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);
return 0;
}
Em Example2.c, vimos como o operador de mudança de bit pode ser usado para o expoente elevado a 2. É muito útil para reduzir a complexidade do código.
Expoente usando função definida pelo usuário
Podemos escrever uma função definida pelo usuário para calcular expoentes. Em Example3.c, vamos escrever uma função definida pelo usuário expoente (), que leva dois argumentos com base e exp do tipo float ant integer.
//Example3.c#incluir
flutuadorexpoente(flutuadorbase, int exp )
{
flutuadorresultado=1.0;
flutuadoreu;
E se( exp < 0)
{
exp = -1 * exp ;
para(eu=1;eu<= exp ;eu++)
resultado=resultado*base;
resultado= 1.0/resultado;
}
outro
{
para(eu=1;eu%f', expoente (3,0));
printf (' nexponente(3, -5) => %f', expoente (3, -5));
printf (' nexponente(-3, -5) => %f', expoente (-3, -5));
return 0;
}
Exemplo3.c vimos a saída da função definida pelo usuário expoente () . Esta função é trabalhada quando o expoente é integral. Para expoente real, temos que usar o NS () função.
Conclusão
Neste artigo, vimos como usar o NS () função e Mudança de bit operador como o expoente pode ser calculado na linguagem C. Também aprendemos como escrever nossa própria função para calcular expoentes. Agora podemos usar essas técnicas em nosso programa C sem nenhuma dúvida.