Cで指数をどのように記述しますか?

How Do You Write An Exponent C



C言語では、指数値は次を使用して計算できます。 NS() 関数。この記事では、の使用方法を学習します NS() べき乗演算を実行する関数。また、使用方法も学びます ビットシフト演算子 べき乗演算を実行します。指数を計算するためのユーザー定義関数を作成してみます。それでは、始めましょう。

構文

ダブル NS (( ダブル ベース、 ダブル exp);







NS NS() 関数はで定義されています math.h ヘッダーファイル。



引数

この関数は2つの引数を取ります。 ベースexp、 の値を計算するには ベース の力に上げられた exp 。ここ ベースexp どちらもダブルです。



戻り値

成功すると、 NS() 関数はの値を返します ベース の力に上げられた exp





の値が exp は0、 NS() 関数は1を返します。

もしも ベース 負であり、 exp 非積分であり、 NS() 関数は戻ります NaN (非数)。



//Example1.c
#含む
#含む

int主要(()。
{{

int結果;
結果= ((int)。 NS ((35)。;
printf (('NSpow(3,5)=>%d '結果)。;
printf (('NSpow(3、-5)=>%lf ' NS ((3、-5)。)。;
printf (('NSpow(-3、-5)=>%lf ' NS ((-3、-5)。)。;
printf (('NSpow(3,5.1)=>%lf ' NS ((35.1)。)。;
printf (('NSpow(-3,5.1)=>%lf ' NS ((-35.1)。)。;
printf (('NSpow(-3、-5.1)=>%lfNS' NS ((-3、-5.1)。)。;

戻る 0;
}

Example1.cでは、 NS() 関数。ここでは、 -lm 数学ライブラリでリンクするコマンドラインパラメータ。 10行目から13行目まで、期待どおりの出力が得られています。 14行目と15行目については、 -nan (数値ではありません)2番目の引数は整数ではないためです。

ビットシフトを使用した指数

指数を2の累乗で計算する場合は、ビットシフトを使用して計算できます。

mだけの左シフトは、最初の項に相当し、2はm乗に相当します。

NS<< m = n * pow(2、m)

mによる右シフトは、最初の項の除算に相当し、2はmの累乗に相当します。

n >> m = n / pow(2、m)

mが正の場合にのみ動作します。

//Example2.c
#含む

int主要(()。
{{
printf (('NS1<%d'1<<3)。;
printf (('NS5<%d'5<<3)。;
printf (('NS-5<%d'、-53 => NS'、40 >> 3);
printf( '
NS40>>3 => NS'、40 >> 3);
printf( '
NS-40>>3 => d n'、-40 >> 3);

0を返します。
}

Example2.cでは、ビットシフト演算子を2の累乗の指数に使用する方法を確認しました。コードの複雑さを軽減することは非常に役立ちます。

ユーザー定義関数を使用した指数

指数を計算するためのユーザー定義関数を書くことができます。 Example3.cでは、ユーザー定義関数を記述します 指数()、 これは、2つの引数に基づいており、浮動小数点整数型のexpを取ります。

//Example3.c
#含む

浮く指数((浮くベース int exp )。
{{
浮く結果=1.0;
浮く;
もしも(( exp < 0)。
{{
exp = -1 * exp ;
にとって((=1;<= exp ;++)。
結果=結果*ベース;

結果= 1.0/結果;
}
そうしないと
{{
にとって((=1;NS'、exponent(3,0));
printf( '
n指数((3、-5)。 => NS'、exponent(3、-5));
printf( '
n指数((-3、-5)。 => NS'、exponent(-3、-5));

0を返します。
}

Example3.cユーザー定義関数の出力を見てきました 指数() 。この関数は、指数が整数の場合に機能します。実際の指数については、 NS() 関数。

結論

この記事では、 NS() 機能と ビットシフト 演算子C言語で指数を計算する方法。また、指数を計算するための独自の関数を作成する方法も学びました。これで、これらの手法をCプログラムで間違いなく使用できるようになりました。