Программирование на C

Как написать экспоненту на C?

Как написать экспоненту на C?
В языке C значение экспоненты может быть вычислено с использованием pow () функция. Из этой статьи вы узнаете, как использовать pow () функция для выполнения операции возведения в степень. Мы также узнаем, как использовать оператор битового сдвига выполнить операцию возведения в степень. Мы попробуем написать пользовательскую функцию для вычисления показателей.  Итак, приступим.

Синтаксис

двойной бух(двойной база, двойной exp);

В pow () функция определена в математика.час заголовочный файл.

Аргументы

Эта функция принимает два аргумента, база а также exp, рассчитать стоимость база возведен во власть exp. Здесь база а также exp оба двойные.

Возвращаемые значения

В случае успеха pow () функция возвращает значение база возведен во власть exp.

Если значение exp равно 0, pow () функция возвращает 1.

Если база отрицательный и exp нецелочисленный, pow () функция возвращает NaN (Не-число).

Примеры

// Пример1.c
#включать
#включать
int main ()

int результат;
результат = (int) pow (3,5);
printf ("\ npow (3,5) =>% d", результат);
printf ("\ npow (3, -5) =>% lf", pow (3, -5));
printf ("\ npow (-3, -5) =>% lf", pow (-3, -5));
printf ("\ npow (3,5.1) =>% lf ", pow (3,5.1));
printf ("\ npow (-3,5.1) =>% lf ", pow (-3,5.1));
printf ("\ npow (-3, -5.1) =>% lf \ n ", pow (-3, -5.1));
возврат 0;

В Example1.c, мы видели результат pow () функция. Здесь мы используем -lm параметр командной строки для ссылки в математической библиотеке. В строках с 10 по 13 мы получили ожидаемый результат. Для строк 14 и 15 у нас есть -нан(Не число), потому что второй аргумент не является целым.

Экспонента с использованием битового сдвига

Если мы хотим вычислить показатель степени в степени 2, то мы можем сделать это с помощью битового сдвига.

Левый сдвиг на m эквивалентен первому члену и 2 - степени m.

п << m  = n * pow (2, м)

Сдвиг вправо на m эквивалентен делению первого члена и 2 в степени m.

п >> м = n / pow (2, м)

Это работает только тогда, когда m положительно.

// Пример2.c
#включать
int main ()

printf ("\ n 1< %d",1<<3);
printf ("\ n 5< %d",5<<3);
printf ("\ n -5< %d",-5<>3 =>% d ", 40 >> 3);
printf ("\ n 40 >> 3 =>% d", 40 >> 3);
printf ("\ n -40 >> 3 =>% d \ n", - 40 >> 3);
возврат 0;

В Example2.c, мы видели, как оператор битового сдвига может использоваться для экспоненты в степени 2. Очень полезно уменьшить сложность кода.

Экспонента с использованием пользовательской функции

Мы можем написать пользовательскую функцию для вычисления показателей. В Example3.c, мы напишем пользовательскую функцию экспонента (), который принимает два аргумента на основе и exp типа float ant integer.

// Example3.c
#включать
экспонента с плавающей запятой (основание с плавающей запятой, целое число)

результат с плавающей точкой = 1.0;
float i;
если (exp < 0)

ехр = -1 * ехр;
для (i = 1; i<=exp;i++)
результат = результат * база;
результат = 1.0 / результат;

еще

для (i = 1; i% f ", показатель степени (3,0));
printf ("\ nexponent (3, -5) =>% f", показатель степени (3, -5));
printf ("\ nexponent (-3, -5) =>% f", показатель степени (-3, -5));
возврат 0;

Пример 3.c мы видели вывод пользовательской функции экспонента (). Эта функция работает, когда показатель степени является целым. Для действительной экспоненты мы должны использовать pow () функция.

Заключение

В этой статье мы видели использование pow () функция и Битовый сдвиг оператор, как можно вычислить экспоненту на языке C. Мы также научились писать собственную функцию для вычисления показателей. Теперь мы можем использовать эти методы в нашей программе на C без всяких сомнений.

Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...
10 лучших игр для Ubuntu
Платформа Windows была одной из доминирующих платформ для игр из-за огромного процента игр, которые разрабатываются сегодня с встроенной поддержкой Wi...
5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...