×

tomoロゴ tomo

【高校数学】浮動小数点数の計算方法をわかりやすく完全攻略!

イリエダ
イリエダ
こんにちは、イルカの妖精イリエダよ。今日は高校数学の「浮動小数点数」について話していくわね。

 

浮動小数点数って聞くと、少し難しそうに感じるかもしれないけど、心配しないで。

わかりやすく解説するから、一緒に勉強していきましょう!

 

そもそも浮動小数点数(ふどうしょうすうてんすう)って何?

まずはイメージからいきましょう。

 

浮動小数点数とは、

大きい数も小さい数も効率よく表せる2進数の指数表現

のことよ。

実はこれ、みんながすでに知っている「科学記数法」と同じ考え方なの。

科学記数法とは、数を「1以上10未満の数 × 10のべき乗」で表す方法のこと。

 

10進数で考えてみよう

たとえば、

1530 = 1.53 × 10³

こんなふうに書けるわよね?

このとき、

  • 1.53 → 仮数
  • 10³ → 指数

という構造になっている。

 

浮動小数点数 計算方法 わかりやすく

 

 

つまり、

数 = 仮数 × 10の指数乗

なのよ。

 

浮動小数点数 計算方法 わかりやすく

 

2進数でも同じことをする

コンピューターは10進数ではなく、2進数の世界で動いている。

だから、

数 = 仮数 × 2の指数乗

という形にするの。

 

浮動小数点数 計算方法 わかりやすく

 

例えば、15.125 を2進数にしてみましょうか。

 

浮動小数点数 計算方法 わかりやすく

 

まず10進数を2進数に変換するわ。

整数部分:

15 = 1111₂

小数部分:

0.125 = 0.001₂

 

浮動小数点数 計算方法 わかりやすく

 

だから、

15.125 = 1111.001₂

 

 

浮動小数点数 計算方法 わかりやすく

 

 

そして、浮動小数点では、必ず

1.xxxxx × 2ⁿ

の形に直すの。これを正規化(せいきか)というわ。

つまり、仮数(小数部分)の先頭が必ず 1 になる形にそろえるのね。

 

1111.001₂ を正規化すると、どうなるかしら??

左に3つ小数点を移動させて、2の3乗をかけた形にすればいいわね。

 

浮動小数点数 計算方法 わかりやすく

 

 

1.111001 × 2³

これが浮動小数点の基本形よ。

 

浮動小数点数 計算方法 わかりやすく

 

32ビット浮動小数点の構造

実際のコンピューターでは、32ビットをこう分けて保存するの。

  • 符号部(1ビット)
  • 指数部(8ビット)
  • 仮数部(23ビット)

 

 

浮動小数点数 計算方法 わかりやすく

 

 

① 符号部

0なら正、1なら負。

 

② 指数部

指数はそのまま入れない。

指数 + 127

を入れるのよ。

これを「バイアス」と言うわ。

今回の指数は3だから、

3 + 127 = 130

130を2進数にすると、

10000010₂

これが指数部になる。

 

③ 仮数部

正規化した形は、

1.111001

だったわね。

でもここで大事なポイントよ。

浮動小数点では、正規化すると必ず先頭は1になるの。

だから、その「1」はわざわざ保存しないのよ。これを隠れた1(hidden bit)っていうの。

つまり、保存するのは小数点の後ろだけ。

111001

ここまでが、実際に必要な情報ね。

 

でもね、仮数部は23ビットって決まっているの。

だから、ビットが足りない分はどうすると思う?

そう、右側を0で埋めるのよ(ゼロ埋め)

11100100000000000000000

こうして23ビットにそろえるの。

後ろに数字がないのは、「それ以上の情報がない」という意味。

だから安心して0を並べていいのよ。

 

最終的なビット列

0 | 10000010 | 11100100000000000000000

これが 15.125 の32ビット浮動小数点表現よ。

 

イリエダ
イリエダ
どう?浮動小数点に慣れてきたかしら?? 次はバイアス値について詳しく勉強していきましょ

 

そんじゃあね!

妖精

ここまで読んでくれてありがとう!おつかれさまでした。

「高校情報Iのまとめページ」で他の記事も復習してみてね。

▶ まとめを見に行く