Синтаксис
двойной NS ( двойной база, двойной exp);
В NS () функция определена в math.h заголовочный файл.
Аргументы
Эта функция принимает два аргумента: база а также exp, рассчитать стоимость база возведен во власть exp . Здесь база а также exp оба двойные.
Возвращаемые значения
В случае успеха NS () функция возвращает значение база возведен во власть exp .
Если значение exp равно 0, NS () функция возвращает 1.
Если база отрицательный и exp нецелочисленный, NS () функция возвращает NaN (Не-число).
Примеры
//Example1.c#включают
#включают
intглавный()
{
intрезультат;
результатзнак равно (int) NS (3,5);
printf (' пpow (3,5) =>% d ',результат);
printf (' пpow (3, -5) =>% lf ', NS (3, -5));
printf (' пpow (-3, -5) =>% lf ', NS (-3, -5));
printf (' пpow (3,5.1) =>% lf ', NS (3,5.1));
printf (' пpow (-3,5.1) =>% lf ', NS (-3,5.1));
printf (' пpow (-3, -5.1) =>% lf п', NS (-3, -5.1));
возвращение 0;
}
В Example1.c мы видели вывод NS () функция. Здесь мы используем -lm параметр командной строки для ссылки в математической библиотеке. В строках с 10 по 13 мы получили ожидаемый результат. Для строк 14 и 15 у нас есть -нан (Не число), потому что второй аргумент не является целым.
Экспонента с использованием битового сдвига
Если мы хотим вычислить показатель степени в степени 2, мы можем сделать это, используя битовый сдвиг.
Левый сдвиг на m эквивалентен первому члену и 2 - степени m.
п<< m = n * pow (2, м)
Сдвиг вправо на m эквивалентен делению первого члена и 2 в степени m.
п >> м = n / pow (2, м)
Это работает только тогда, когда m положительно.
//Example2.c#включают
intглавный()
{
printf (' п1<%d',1<<3);
printf (' п5<%d',5<<3);
printf (' п-5<%d', -53 => %d', 40 >> 3);
printf (' п40>>3 => %d', 40 >> 3);
printf (' п-40>>3 => %г п', -40 >> 3);
возврат 0;
}
В примере 2.c мы увидели, как можно использовать оператор сдвига битов для экспоненты в степени 2. Это очень полезно для уменьшения сложности кода.
Экспонента с использованием пользовательской функции
Мы можем написать пользовательскую функцию для вычисления показателей. В Example3.c мы напишем пользовательскую функцию экспонента (), который принимает два аргумента: based и exp типа float ant integer.
//Example3.c#включают
плаватьэкспонента(плаватьбаза, int exp )
{
плаватьрезультатзнак равно1.0;
плаватья;
если( exp < 0)
{
exp знак равно -1 * exp ;
для(язнак равно1;я<= exp ;я++)
результатзнак равнорезультат*база;
результатзнак равно 1.0/результат;
}
еще
{
для(язнак равно1;я%ж', показатель степени (3,0));
printf (' nexponent(3, -5) => %ж', показатель степени (3, -5));
printf (' nexponent(-3, -5) => %ж', показатель степени (-3, -5));
возврат 0;
}
Example3.c мы видели вывод пользовательской функции экспонента () . Эта функция работает, когда показатель степени является целым. Для действительной экспоненты мы должны использовать NS () функция.
Заключение
В этой статье мы видели использование NS () функция и Битовый сдвиг оператор, как можно вычислить экспоненту на языке C. Мы также научились писать нашу собственную функцию для вычисления показателей. Теперь мы без всяких сомнений можем использовать эти методы в нашей программе на языке C.