コンピュータのプロセッサ(CPUなど)の内部構造において、固定小数点数の計算は、整数を処理するための回路(ALU:算術論理演算装置)をそのまま使い回すことができるという絶大な強みを持っています。小数点の位置がどこにあるかは、あくまでプログラムを書く人間やソフトウェア側の「約束事」として管理され、ハードウェア側からは単なる整数のビット列として見えています。
例えば、16ビットのデータのうち、上位8ビットを整数部分、下位8ビットを少数部分と見なす(これをQフォーマットなどと呼びます)と決めておけば、加算や減算は普通の整数と同じように足し引きするだけで正確な結果が得られます。掛け算や割り算を行った後だけ、ずれてしまった小数点の位置をシフト演算で元の位置に調整する処理を挟みます。
このような特性から、複雑な浮動小数点演算ユニット(FPU)を搭載できない安価なマイコンや、消費電力を極限まで抑えたい組み込みシステム、あるいは音声データなどの信号処理(DSP)をミリ秒単位の超高速で処理しなければならない場面で、固定小数点数は現在でも非常に重要な技術として活用されています。また、浮動小数点数で発生する「丸め誤差」を嫌う金融機関のシステムや会計ソフトにおいても、金額を扱う際には固定小数点の考え方(あるいは10進数のまま計算するBCD演算など)が採用されることが一般的です。
情報処理技術者試験では、固定小数点数はしばしば「浮動小数点数」との対比問題として出題されます。両者のメリットとデメリットを明確に区別して覚えることが得点のカギです。具体的には、「固定小数点数は計算速度が速く精度が安定しているが、表現できる数値の範囲(ダイナミックレンジ)が狭い」こと、逆に「浮動小数点数は表現できる範囲は圧倒的に広いが、計算が複雑で速度が落ちやすく、微小な誤差が発生する可能性がある」ことをセットで記憶しておきましょう。
また、固定小数点数において、計算結果が用意されたビット数(桁数)を超えてしまう現象である「オーバーフロー(桁あふれ)」についても問われることがあります。小数点の位置が固定されている分、表現できる最大値が小さくなりがちであるため、プログラムを設計する際にはオーバーフローが発生しないように十分なビット幅を確保するなどの注意が必要である点も、実践的な知識として問われやすいポイントです。
対極の概念として必ず比較される浮動小数点数や、計算結果が桁数に収まらなくなるオーバーフロー、データを効率よく処理するためのシフト演算などと併せて学習すると効果的です。