固定小数点数

固定小[[数]]点



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

固定小[[数]]点の仕組み



固定小[[数]]点は、整と同様にビット列で表現されます。小[[数]]点の位置は予め決められており、設計者が用途に応じて決定します。例えば、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)
丸め誤差

もう一度検索

【記事の利用について】

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

【リンクついて】

リンクフリーです。