透2017/6/202019/3/29べき乗の計算って使ってますか?計算を行うときに、同じ数字を2回かけたり3回かけたりする必要がある場合があります。正方形の面積や立方体の体積を計算する場合などです。べき乗は累乗ともいいます。C言語ではべき乗の計算をするために、pow関数が用意されています。この記事では、べき乗の計算についてべき乗(累乗)とはsqrt関数でルート(平方根)を計算pow関数でべき乗(累乗)を計算という基本的な内容から、2のべき乗とシフト演算についてなど応用的な使い方の内容についても解説していきます。まとめべき乗(累乗)とはべき乗とは実数mの実数n乗の計算のことです。nの値が0.5の場合は1/2乗つまりルート(平方根)を計算することになります。ルートの結果の値を2乗つまり2回かけると実数mの値になります。nの値が2の場合は2乗つまり実数mを2回、3の場合は3乗つまり実数mを3回かけることになります。べき乗の計算方法について特にルートの計算と2乗の計算について解説していきます。sqrt関数でルート(平方根)を計算ルートの計算方法について説明します。ルートを計算するにはsqrt関数を使います。sqrt関数はヘッダーファイル「math.h」をインクルードする必要があります。sqrt関数は引数の値のルートを計算し、計算結果をdouble型で返します。引数にはゼロ以上のdouble型の数値を指定します。x);float型の引数を指定しfloat型の値を返す必要がある場合には、sqrtf関数を使用します。double型の値を返す必要がある場合には、sqrtl関数を使用します。x);なおsqrt関数のように算術演算用のライブラリを使用する場合はコンパイルの際に「-lm」を追記する必要がありますのでご注意ください。ちなみに「-l」はライブラリをリンクすることを表し、「m」はライブラリの名前「libm.a」を表しています。「libm.a」は数学のライブラリです。-lmそれではサンプルコードで確認しましょう。double型)このサンプルコードではsqrt、sqrtf、sqrtl関数を使って、1~5までのそれぞれの整数値のルートを計算しています。pow関数でべき乗(累乗)を計算べき乗の計算を行うには、pow関数を使用します。pow関数もヘッダーファイル「math.h」をインクルードする必要があります。pow関数は第1引数の値を第2引数の値でべき乗計算します。第1引数、第2引数、戻り値いずれもdouble型となります。double型となるpowl関数があります。y);なおpow関数についても算術演算用のライブラリを使用しますので、コンパイルの際に「-lm」を追記する必要がありますのでご注意ください。ルート(平方根)を計算pow関数の第2引数を「0.5」と指定することで1/2乗すなわちルートの値を計算することもできます。サンプルコードで確認しましょう。0;}実行結果:1のルートは1.0000002のルートは1.4142143のルートは1.7320514のルートは2.0000005のルートは2.236068二乗を計算pow関数の第2引数を「2.0」と指定すると二乗の値を計算することもできます。サンプルコードで確認しましょう。0;}実行結果:1の2乗は1.0000002の2乗は4.0000003の2乗は9.0000004の2乗は16.0000005の2乗は25.000000三乗を計算pow関数の第2引数を「3.0」と指定すると三乗の値を計算することもできます。サンプルコードで確認しましょう。0;}実行結果:1の3乗は1.0000002の3乗は8.0000003の3乗は27.0000004の3乗は64.0000005の3乗は125.0000002のべき乗とシフト演算について前述のpow関数を使って2のべき乗の計算することができます。2のべき乗でのかけ算やわり算はビットのシフト演算の結果と等しくなります。ちなみにシフト演算とは2進数で羅列されたビットの列を左もしくは右にずらす操作のことです。左シフトの演算子には「<<」と右シフトの演算子には「>>」を使用します。サンプルコードを使って確認していきましょう。7このサンプルコードでは7に2の3乗すなわち8をかけた値と7を3ビット左にシフトした値を比較し、同じ数値になっていることを確認できています。56を2の3乗でわった値と56を3ビット右にシフトした値を比較し、同じ数値になっていることを確認できています。まとめここでは、べき乗の計算について説明しました。べき乗の計算を行う場合pow関数を使いますが、コンパイルする際に算術演算用のライブラリファイル「libm.a」にリンクする必要があるので注意してください。使いこなすことができるように、この記事を何度も参考にして下さいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。お問合せはこちらでも受け付けています。