C言語,ilogb()関数で浮動小数点数の指数部を整数で取得する

スポンサーリンク

鍛錬 699

C言語,ilogb()関数で浮動小数点数の指数部を整数で取得する

浮動小数点数の指数部を符号付き整数で取得するには、ilogb()関数を使用します。
 
以下は、ilogb()関数についてです。

#include <math.h>

int ilogb(double x);
 

引数

以下は、上記の引数についてです。

引数 意味
double x 指数部を取得する対象の数値

戻り値

以下は、戻り値についてです。

戻り値
int 引数の指数部(符号付き整数)
スポンサーリンク

プログラム

以下は、浮動小数点数の指数部を計算するするプログラム、get_ilogb.c です。

今回は、8 と 1/8 について、指数部を計算しています。

\(底^{\displaystyle ?} = 8\)
\(底^{\displaystyle ?} = \displaystyle \frac{ 1 }{ 8 }\)
// include
#include <stdio.h>
#include <math.h>

// main
int main(void)
{
	double num;
	int index;
	
	// 8の指数部を整数値で取得
	num = 8.0;
	index = ilogb(num);
	printf("%.3lf の指数部(整数値) = %d\n", num, index);
	
	// 1/8の指数部を整数値で取得
	num = 1.0 / 8.0;
	index = ilogb(num);
	printf("%.3lf の指数部(整数値) = %d\n", num, index);
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム get_ilogb.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra get_ilogb.c -lm -o get_ilogb
***@ubuntu:~/***/test/c$ ./get_ilogb
8.000 の指数部(整数値) = 3
0.125 の指数部(整数値) = -3

 
上記に示した通り、8 と 1/8 の指数部 (「\(底^{指数部}\)」) は以下の通りであることが分かりました。

\(底^{3} = 8\)
\(底^{-3} = \displaystyle \frac{ 1 }{ 8 }\)
タイトルとURLをコピーしました