浮動小数点数(floating point number)

数を符号・指数・仮数の3つに分けて表す形式。とても大きな数や小さな数を扱える。

もう少し詳しい説明

浮動小数点数は、数を「符号」「指数」「仮数」の3つに分けて表す形式です。

考え方は、理科で使う指数の書き方と同じです。

602,000,000,000,000,000,000,000 = 6.02 × 10²³

長い数でも、**数字の並び(6.02)と、桁の大きさ(10の23乗)**に分ければ短く書けます。小数点の位置が指数によって動く(浮く)ので、浮動小数点と呼びます。

コンピュータの中では、これを2進数で行います。

1.0111 × 2² のように、「1.○○○」× 2の何乗 の形にする

3つの部品

部品中身例(5.75)
符号部正か負か。0なら正、1なら負0
指数部2の何乗か指数は2(指数部には、後で説明する129が入る)
仮数部「1.」のあとに続く数字の並び0111

指数部で範囲を、仮数部で精度を受け持ちます。指数部のビットが多いほど大きな数・小さな数まで扱え、仮数部のビットが多いほど細かく表せます。

実際に変換してみる

国際規格 IEEE 754 の単精度(32ビット)で、5.75 を表してみます。単精度は、符号部1ビット・指数部8ビット・仮数部23ビットです。

5.7510進数101.112進数に直す(4+1+0.5+0.25)1.0111 × 2²先頭が1.になるよう小数点を2つ左へ(正規化)符号 0 / 指数部 129 / 仮数部 0111…指数 2+127=129、先頭の1.は書かない
10進数を2進数に直し、先頭が「1.」になるように小数点を動かします。動かした回数が指数になります。IEEE 754 の単精度では、指数に127を足した値を指数部に入れ、先頭の「1.」は書かずに残りを仮数部に入れます。

① 2進数に直す

5.75 = 4 + 1 + 0.5 + 0.25 なので、2進数では 101.11 です。

② 先頭が「1.」になるように小数点を動かす

101.11 の小数点を2つ左へ動かすと 1.0111。2つ動かしたので、× 2² を付けます。

101.11 = 1.0111 × 2²

この形にそろえることを正規化と呼びます。正規化とは、仮数の先頭の桁が0にならないように、指数を調整することです。IEEE 754 では「1.○○○」の形にそろえますが、試験の問題文で独自の形式が示されるときは「0.1○○○ × 2ⁿ」の形にそろえることもあります。どちらの形にするかは、問題文の定義に従ってください。

③ 3つの部品に入れる

並べると、こうなります。

符号  指数部      仮数部
 0   10000001   01110000000000000000000

2つの工夫:127を足す、1.を書かない

ここが試験で問われる部分です。

指数に127を足すのは、負の指数も、符号なしの数として扱えるようにするためです。0.5 のような1より小さい数は、指数が負になります(0.5 = 1.0 × 2⁻¹)。127を足しておけば、指数部はいつも0以上になり、大小の比較も単純になります。この足す数をバイアスと呼びます。

先頭の「1.」を書かないのは、正規化すると先頭は必ず1になるからです。いつも1なら書く必要がありません。その1ビットを省いたぶん、仮数部で1桁多く表せます。

誤差:正確に表せない数がある

浮動小数点数は、すべての数を正確に表せるわけではありません。

たとえば10進数の 0.1 は、2進数では 0.000110011… と割り切れずに続きます。仮数部の桁数に収まるよう丸めるので、わずかにずれた値になります(単精度では 0.10000000149… という値です)。これは下の表の丸め誤差にあたります。

計算のしかたによって、誤差が目立つ場面があります。この4つは名前と中身がそのまま問われます。

名前起こる場面
丸め誤差表せる桁数に合わせて、切り捨てや四捨五入をしたとき
桁落ちほぼ等しい2つの数を引き算したとき。意味のある桁が大きく減る
情報落ち大きさが大きく違う2つの数を足し引きしたとき。小さいほうの桁の一部または全部が結果に反映されない
打切り誤差無限に続く計算を、途中で打ち切ったとき

桁落ちの例を1つ。1.2345 − 1.2344 = 0.0001 です。もとの数は5桁の意味のある数字を持っていたのに、答えは1桁しか残りません。

情報落ちは逆で、大きさの違う数を足したときに起こります。単精度(意味のある桁がおよそ7桁)で 100000000 + 0.0001 を計算すると、0.0001 は仮数部の桁に収まりきらず、結果から消えてしまいます。桁数の多い倍精度なら、この組合せでは消えずに残ります。

覚え方:指数は範囲、仮数は精度

部品の役割は、**指数で「どこまで大きく・小さく」、仮数で「どこまで細かく」**です。

そのうえで、IEEE 754 単精度の2つの工夫、指数に127を足すと先頭の1.を書かないを押さえておけば、変換の問題は手順どおりに解けます。誤差は、引き算で桁が減るのが桁落ち、足し算で小さいほうが消えるのが情報落ちと、演算の種類で分けると取り違えません。

→ 浮動小数点数の練習問題を解く

試験ではこう出る

科目A(旧・午前)の基礎理論分野で出ます。多いのは、10進数を浮動小数点形式のビット列に直させる問題と、桁落ち・情報落ち・丸め誤差の説明を選ばせる問題です。応用情報では、計算の順番を変えて誤差を小さくする工夫や、単精度と倍精度の違いを問う形になります。

変換の問題では、問題文に示された形式に従うことが大切です。IEEE 754 のほかに、指数部の決め方が異なる独自の形式が示されることもあります。その場合は、指数部のビット数・バイアスの有無・仮数部の先頭を省くかどうかを、問題文から1つずつ読み取ってから手を動かしてください。

関連する用語

基数変換
10進数と2進数を書き直すこと。浮動小数点数にする前に、まず2進数に直す
IEEE 754
浮動小数点数の国際的な規格。単精度は32ビット、倍精度は64ビット
桁落ち・情報落ち
浮動小数点数の計算で起こる誤差。近い数の引き算と、大きさの違う数の足し算で起こる
補数
負の数を2進数で表すための形。浮動小数点数とは別の方法で符号を持つ
固定小数点数
小数点の位置をあらかじめ決めておく形式。範囲は狭いが、計算は単純

ミニクイズ

浮動小数点数の演算で、絶対値がほぼ等しい2つの数の差を求めたときに、有効数字の桁数が大きく減る現象はどれか。

正解は 3番:桁落ち

絶対値がほぼ等しい数どうしを引き算すると、上の桁がほとんど打ち消し合い、意味のある桁(有効数字)が大きく減ります。これが桁落ちです。情報落ちは、絶対値の大きく異なる2つの数を足し引きしたときに、小さいほうの数が結果にほとんど反映されない現象です。丸め誤差は、表せる桁数に合わせて切り捨てや四捨五入をしたときに生じる誤差です。打切り誤差は、無限に続く計算を途中で打ち切ったときに生じる誤差です。「ほぼ等しい数の引き算」とあれば桁落ち、と結び付けておくと迷いません。

間違えた用語の復習リストを見る →

最終更新:2026-09-21