数の表現と誤差の基礎

基本情報技術者試験, FE 基本情報技術者試験
基本情報技術者試験

基本情報技術者試験では、数値データの表現方法や、それに関連する誤差についての知識が求められます。

本記事では、試験対策として役立つよう、固定小数点浮動小数点の違いと、それに伴う誤差の種類についてわかりやすく説明していきます。


スポンサーリンク

固定小数点と浮動小数点

コンピュータで数値を扱う場合、内部で数値をビット(0と1)で表現します。これを数値表現と呼びます。

試験では、固定小数点と浮動小数点の違いや、それぞれの特徴を理解しておくことが重要です。

固定小数点とは

固定小数点は、小数点の位置が固定された数値の表現方法です。

例えば、ある範囲内の数値しか扱わない場合、固定小数点での表現が効率的です。

数部分と小数部分のビット数があらかじめ決められており、計算はその範囲内で行われます。

このため、表現できる数値の範囲が狭くなりますが、計算速度が速いという特徴があります。

例えば、組み込みシステムやハードウェアのリソースが限られた環境でよく使われます。

  • : 10進数の「123.456」を固定小数点で表す場合、あらかじめ小数点以下3桁までの表現と決めておけば、その範囲で計算できますが、超える部分は無視されます。
  • : 16ビット固定小数点で小数部を8ビットと決めた場合、表現できる最小単位は \( 2^{-8} \) (0.00390625)となります。

浮動小数点とは

浮動小数点は、小数点の位置が自由に動く数値表現です。

大きな数や非常に小さな数を扱うことが可能で、科学計算などで広く使われています。

浮動小数点の表現は、数値を仮数指数に分けて扱うことで実現されています。

IEEE754表示方法

基本情報技術者試験でも頻出のIEEE754は、浮動小数点を表現するための国際規格です。

浮動小数点は次の3つの部分で構成されます。

  • 符号ビット: 正の数か負の数かを表します(0が正、1が負)。
  • 指数: 仮数を2進数で何乗するかを示します。これにより、小数点の位置を動かすことができます。
  • 仮数: 実際の数値の部分で、有効桁数として表現される部分です。

たとえば、10.25(10進数)を2進数で表現する場合は、次のようになります。

  1. 10.25を2進数に変換 → 1010.01(2進数)
  2. 仮数と指数に分ける → 仮数: 1.01001、指数: 3(2の3乗)

浮動小数点は桁数に限界があるため、これが後に説明する「誤差」の原因となることがあります。


誤差とは

コンピュータは無限の精度で数値を計算できないため、必ずどこかで誤差が生じます。試験でもよく出題される「誤差」の理解は、計算の正確性や効率を評価する上で重要です。

誤差の種類

ここでは、基本情報技術者試験で押さえておきたい代表的な誤差の種類を紹介します。

1. 桁あふれ誤差(オーバーフロー、アンダーフロー)

  • オーバーフロー: 計算結果が表現できる最大値を超えた場合に起こります。
    例えば、32ビットで扱える最大の整数値を超えると、「無限大」と表示されたり、誤った結果になります。
  • アンダーフロー: 逆に、非常に小さな数が表現できる最小値を下回った場合に起こります。
    この場合、結果がゼロになることがあります。

例えば、2進数の計算で非常に大きな数や小さな数を扱うときに注意が必要です。

2. 情報落ち

大きな数と小さな数を足し合わせたとき、小さな数が無視される現象です。

これにより、元々の精度が失われることがあります。

例えば、1億+0.0001の計算では、コンピュータは「1億」としか認識しないことがあります。

3. 打切り誤差

計算を途中で打ち切ったり、桁数を切り捨てる際に生じる誤差です。

例えば、小数点以下の計算をある程度の桁数で打ち切ると、その後の計算結果に影響します。

例えば、円周率「3.14159」を「3.14」で計算すると、打ち切られた桁数による誤差が発生します。

4. けた落ち

似たような数値の引き算を行ったときに、有効桁数が急激に減少する現象です。

これによって計算精度が著しく低下します。

例えば、99999.9999と99999.9998の引き算では、元々多くの桁があったのに最終的な結果は小数点以下がほとんどなくなります。

5. 丸め誤差

浮動小数点の数値を計算する際に、特定の桁数に丸めることで生じる誤差です。

特に小数点以下を丸める場合に発生しやすく、計算を繰り返すと誤差が累積します。

例えば、1.234567を小数第2位で「1.23」と丸めると、その差が丸め誤差として残ります。


    まとめ

    基本情報技術者試験において、固定小数点浮動小数点の違い、そして数値計算に伴う誤差の種類を理解しておくことは非常に重要です。

    固定小数点はシンプルで速いですが、表現できる範囲が限られ、浮動小数点は幅広い数値を扱えますが、誤差のリスクがあります。

    試験では、特に桁あふれ丸め誤差など、具体的な計算の結果としてどう誤差が発生するかを問う問題が出題されることがあります。こうした誤差の性質を理解し、正確に計算できるよう備えておきましょう。

    コメント