固定小数点演算とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > 固定小数点演算の意味・解説 

こていしょうすうてん‐えんざん〔コテイセウスウテン‐〕【固定小数点演算】

読み方:こていしょうすうてんえんざん

小数点位置固定され固定小数点数用いて行う四則演算コンピューターにおいては、扱う数の絶対値範囲限られている計算用いられあたかも整数値のように扱うことで処理が容易になり、高速計算できる。→浮動小数点演算

[補説] 例えば「1500×0.06」という乗算場合、いったん「1500×6=9000」と整数化して計算したのち、小数点以下の桁数(2)から小数点位置(左に2ずれる)を決めて90」を得る。コンピューターでの実際演算処理は二進法行われる


固定小数点数

(固定小数点演算 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/08 16:08 UTC 版)

固定小数点数(こていしょうすうてんすう、: fixed-point number)は、小数点が置かれる桁を固定して表されたのことで、コンピュータ上で小数を表現する方法として使用される形式のひとつである。ある桁数のうちのある場所に小数点が固定されているもの(固定小数点)として扱う方式であるため、表現される仮数部に対して小数点の位置が移動する浮動小数点数の対義語として用いられる。すなわち、「固定-小数点数」ではなく「固定小数点-数」である。

演算自体は整数型と同じ方法で行われ、小数点位置は設計者の意図によって決定される。10進法で言えば、たとえば整数123は下から1桁分を小数点以下と決めれば12.3を表し、下から2桁分を小数点以下と決めれば1.23を表すことになる。コンピュータ上での演算で広く使用される2進法では、2進整数1111011(10進法表記: 123)は下から1桁分を小数点以下と決めれば111101.1(10進法表記: 61.5)、下から2桁分を小数点以下と決めれば11110.11(10進法表記: 30.75)となる。以下の文章では、特に断りがない限り2進固定小数点数について述べる。

特徴

浮動小数点数に比べて表現できる値の範囲ははるかに狭いが、情報落ちが起こらない(そもそも情報落ちが起きるような差のある値は表現できない)ことや高速に演算できることが利点に挙げられる。コンピュータグラフィックスで用いられる座標や画素値はある程度値域が限られるため、固定小数点数でも表現することができ浮動小数点数にくらべ高速に計算できるようになる。また、コンパイラなどにおいて、変数を定数で除算するような場合、普通に除算するよりも、除数の逆数を固定小数点の要領で表現したものを乗じてシフトして答えを求めた方が高速であることがあるため、そのような最適化をおこなうことがある[1]

なお、信号処理を実行するためのデバイスであるデジタルシグナルプロセッサでは、処理対象である信号の振幅の値の範囲が固定小数点的であるので、コストの高い浮動小数点演算のハードウェア (FPU) を搭載せず、固定小数点数が主に用いられる。現代のパソコンにおいては、演算を行うCPUにFPUが付属するものが主流であるため、小数の計算は一般に浮動小数点数を用いるものがほとんどだが、対象とするデータの特性や特に高速化が必要なコーデックなどでは固定小数点を用いることもある。

また、10進法での小数は2進法の小数として表現すると必ずしも有限小数とはならず、誤差を生じる。そのため、貨幣に関する計算のような、小数点以下で必要な桁数は決まっているが、2進法との変換を回避したい場合に、小数点以下の桁数をビット単位ではなく10進法の桁数で決めた固定小数点数も処理に用いられる[2]。当然のことだが、10進計算が万能で無誤差というわけではない。例えば、3の倍数でない値を3で割る場合、10進計算では解が無限小数になるため、誤差は避けられない。

Q表記(Qフォーマット)

固定小数点数は、小数部分のビット数をQ表記(Qフォーマット)で表す。例えば、小数部分のビット数が12ビットである場合には、Q12表記もしくはQ12フォーマットと呼ばれる。

例えば、1.5をQ1表記で表現すると2進数表記では11である。この表記ではビット0とビット1の間に小数点がある。

注:(1*2^0)+(1*2^-1)=1.5

固定小数点演算

固定小数点演算における四則演算においては、加算や減算はそのまま整数同士の加減算として計算できる。しかし、乗算や除算では演算結果の小数点位置が掛けた数の小数点の位置だけずれることになるため、元の小数点位置に戻す場合には乗算では右側(LSB側)へ、除算では左側(MSB側)へシフト演算を行う必要がある。

ここでは例えば、1.5と0.5の加算を考えてみる。1.5、0.5はQ1表記では各々2進数表記で11、01である。これらQ1表記の数(11と01)をそのまま足してみると100となるが、100を元の実数に直すと2.0であるので通常の加算のまま計算できている。次に乗算を考え単純にQ1表記の数(11と01)を掛けてみる。結果は11であるがこれをQ1表記であるとみなして実数に直すと1.5となる。1.5と0.5の乗算結果の正解は0.75であるのでこの解釈は間違いである。乗算では、小数点部分のビット数が、乗算対象となる2つの固定小数点数の小数点部分のビット数の和になる。Q1表記同士であれば、計算後の小数部のビット数は1ビット足す1ビットで2ビットとなる。そのため乗算結果の11はQ2表記として解釈する必要がある。またQ1表記に直す場合には、1ビット右にシフトする必要がある。

また、浮動小数点数にくらべ表現可能な範囲が狭く算術オーバーフローや算術アンダーフローが発生しやすいことに注意したほうがよい。

固定小数点数の精度

固定小数点方式で有効桁数が十分にとれるのは、(符号ビットを除く)最上位桁が1の範囲内だけである。この時の相対誤差は桁数がn桁の時1/2nである。表現しようとする数が0に近づき上位桁が0で埋まる(ないし2の補数表現の負の数であれば1で埋まる)と、有効桁数はそれだけ減るので、その場合に必要な精度を満たしているか注意が必要である。

実数値と固定小数点数値の換算

ある実数を x とし、これを固定小数点数で表した整数を n とする。最下位ビットを実数 L、オフセットを実数 O と定めると、実数 x は固定小数点数で次の数 n となる。ここで、round は四捨五入関数である。

カテゴリ


固定小数点演算

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/04/17 07:49 UTC 版)

固定小数点数」の記事における「固定小数点演算」の解説

固定小数点演算における四則演算においては加算減算そのまま整数同士加減算として計算できる。しかし、乗算除算では演算結果小数点位置掛けた数の小数点位置けずれることになるため、元の小数点位置に戻す場合には乗算では右側LSB側)へ、除算では左側MSB側)へシフト演算を行う必要がある。 ここでは例えば、1.50.5加算考えてみる。1.50.5Q1表記では各々2進数表記1101である。これらQ1表記の数(1101)をそのまま足してみると100となるが、100を元の実数直す2.0であるので通常の加算のまま計算できている。次に乗算考え単純にQ1表記の数(1101)を掛けてみる。結果11であるがこれをQ1表記であるとみなして実数直す1.5となる。1.50.5乗算結果正解0.75であるのでこの解釈間違いである。乗算では、小数点部分ビット数が、乗算対象となる2つ固定小数点数小数点部分ビット数の和になるQ1表記同士であれば計算後の小数部のビット数は1ビット足す1ビットで2ビットとなる。そのため乗算結果11Q2表記として解釈する必要がある。またQ1表記直す場合には、1ビット右にシフトする必要があるまた、浮動小数点数にくらべ表現可能な範囲狭く算術オーバーフロー算術アンダーフロー発生しやすいことに注意したほうがよい。

※この「固定小数点演算」の解説は、「固定小数点数」の解説の一部です。
「固定小数点演算」を含む「固定小数点数」の記事については、「固定小数点数」の概要を参照ください。

ウィキペディア小見出し辞書の「固定小数点演算」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「固定小数点演算」の関連用語

固定小数点演算のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



固定小数点演算のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの固定小数点数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの固定小数点数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS