【C言語入門】pow関数でべき乗計算(累乗、二乗、ルート、平方根)

べき乗の計算って使ってますか?計算を行うときに、同じ数字を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型の数値を指定します。

    float型の引数を指定しfloat型の値を返す必要がある場合には、sqrtf関数を使用します。

    long double型の引数を指定子long double型の値を返す必要がある場合には、sqrtl関数を使用します。

    なおsqrt関数のように算術演算用のライブラリを使用する場合はコンパイルの際に「-lm」を追記する必要がありますのでご注意ください。

    ちなみに「-l」はライブラリをリンクすることを表し、「m」はライブラリの名前「libm.a」を表しています。「libm.a」は数学のライブラリです。

    main.cファイルのgccでのコンパイル例:

    それではサンプルコードで確認しましょう。

    実行結果:

    このサンプルコードではsqrt、sqrtf、sqrtl関数を使って、1~5までのそれぞれの整数値のルートを計算しています。

    pow関数でべき乗(累乗)を計算

    べき乗の計算を行うには、pow関数を使用します。pow関数もヘッダーファイル「math.h」をインクルードする必要があります。

    pow関数は第1引数の値を第2引数の値でべき乗計算します。第1引数、第2引数、戻り値いずれもdouble型となります。

    その他に第1引数、第2引数、戻り値いずれもfloat型となるpowf関数と、第1引数、第2引数、戻り値いずれもlong double型となるpowl関数があります。

    なおpow関数についても算術演算用のライブラリを使用しますので、コンパイルの際に「-lm」を追記する必要がありますのでご注意ください。

    ルート(平方根)を計算

    pow関数の第2引数を「0.5」と指定することで1/2乗すなわちルートの値を計算することもできます。

    サンプルコードで確認しましょう。

    実行結果:

    二乗を計算

    pow関数の第2引数を「2.0」と指定すると二乗の値を計算することもできます。

    サンプルコードで確認しましょう。

    実行結果:

    三乗を計算

    pow関数の第2引数を「3.0」と指定すると三乗の値を計算することもできます。

    サンプルコードで確認しましょう。

    実行結果:

    2のべき乗とシフト演算について

    前述のpow関数を使って2のべき乗の計算することができます。2のべき乗でのかけ算やわり算はビットのシフト演算の結果と等しくなります。

    ちなみにシフト演算とは2進数で羅列されたビットの列を左もしくは右にずらす操作のことです。左シフトの演算子には「<<」と右シフトの演算子には「>>」を使用します。

    サンプルコードを使って確認していきましょう。

    実行結果:

    このサンプルコードでは7に2の3乗すなわち8をかけた値と7を3ビット左にシフトした値を比較し、同じ数値になっていることを確認できています。

    また56を2の3乗でわった値と56を3ビット右にシフトした値を比較し、同じ数値になっていることを確認できています。

    まとめ

    ここでは、べき乗の計算について説明しました。

    べき乗の計算を行う場合pow関数を使いますが、コンパイルする際に算術演算用のライブラリファイル「libm.a」にリンクする必要があるので注意してください。

    使いこなすことができるように、この記事を何度も参考にして下さいね!

    LINEで送る
    Pocket

    最短でエンジニアを目指すなら侍エンジニア塾

    cta_under_bnr

    侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

    あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

    無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

    無料体験レッスンの詳細はこちら

    書いた人

    長野 透

    長野 透

    熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
    お問合せはこちらでも受け付けています。
    [email protected]

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説