固定小数点数

固定小数点数



固定小数点数とは、コンピュータで小数を扱う方法の一つで、小数点が固定された位置にある数値表現形式です。浮動小数点数と異なり、小数点の位置が固定されているため、表現できる数値の範囲は狭くなりますが、演算が高速であるという利点があります。

固定小数点数の仕組み



固定小数点数は、整数と同様にビット列で表現されます。小数点の位置は予め決められており、設計者が用途に応じて決定します。例えば、16ビットの固定小数点数で小数部を8ビットとすると、整数部は8ビットとなります。

10進数の例では、123という整数は、小数点を1桁目とすると12.3、2桁目とすると1.23となります。同様に、2進数でも小数点の位置を決めれば、小数部を持つ数値を表せます。

固定小数点数の特徴



固定小数点数は、浮動小数点数と比較して以下の特徴を持ちます。

表現できる値の範囲が狭い: 浮動小数点数と比べて、表現できる数値の範囲は非常に狭いです。
演算が高速: 小数点の位置が固定されているため、演算処理が高速に行えます。
情報落ちがない: 浮動小数点数では起こりうる情報落ちという現象が、固定小数点数ではそもそも発生しません。
ハードウェアが単純: 浮動小数点演算器(FPU)のような複雑なハードウェアが不要な場合もあります。

これらの特徴から、固定[小数]]点数は、数値の範囲が限定的なコンピュータグラフィックスや[[デジタルシグナルプロセッサ]など、高速な演算が求められる場面でしばしば利用されます。

Q表記



固定小数点数の小数部のビット数を表すために、Q表記(Qフォーマット)が用いられます。Qm.nという表記では、mビットが整数部、nビットが小数部を表します。例えば、Q1.15は、整数部1ビット、小数部15ビットの固定小数点数です。

固定小数点演算



固定小数点演算は、基本的には整数演算と同じ方法で行われます。しかし、乗算や除算では、演算結果の小数点の位置がずれるため、シフト演算によって正しい小数点の位置に戻す必要があります。加算と減算は、そのまま整数演算として実行できます。乗算では、小数点以下のビット数は、乗算する二つの数の小数点以下のビット数の合計となります。除算では逆の計算が行われます。

精度



固定小数点数の精度は、小数部のビット数によって決まります。ビット数が多ければ多いほど、精度が高くなります。しかし、固定小数点数の表現できる値の範囲は限られているため、数値の範囲外の数値を扱う場合、桁落ちやオーバーフローが発生する可能性があります。

実数値との換算



固定小数点数と実数値の相互変換は、小数点の位置と最下位ビットの重みを考慮して行います。四捨五入などの丸め処理が必要になる場合もあります。

固定小数点数の適用例



固定小数点数は、以下のような用途で用いられます。

コンピュータグラフィックス:座標や画素値などの表現
[デジタルシグナルプロセッサ]:音声や画像信号の処理
組込みシステム:資源の少ないシステムにおける数値演算

まとめ



固定小数点数は、浮動小数点数とは異なる特性を持つ数値表現形式です。高速な演算とハードウェアの簡素化という利点がありますが、表現できる値の範囲が狭く、精度にも注意が必要です。用途に応じて、固定小数点数と浮動小数点数を使い分けることが重要です。

関連項目



浮動小数点数
二進化十進表現 (BCD)
丸め誤差

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。