浮動小数点数演算はむずかしくない
固定小数点数演算と聞くと拒絶反応を示す人もいるけど、計算の考え方自体は簡単で、皆さんも小さい頃から知恵として持っていると思います。
0.6+0.7+0.2を計算する時、まず6+7+2を計算して、結果の15の小数点の位置をずらして1.5という答えを導きますよね。ほぼこれのことです。
この例でいうと
- 0.6を6としたり15を1.5とする小数点位置の調整(スケーリング)は、コンピュータではなく人間がやる。
- コンピュータはあくまで6+7+15を計算する。
というのが、固定小数点数演算の考え方です。これを掛け算(乗算)にも拡大すると、もう固定小数点数演算のできあがりです。*1
何でこんなことをするかというと、
という処理速度上の要求です。
みなさん、PCや携帯やスマートフォンで、写真=静止画やビデオ=動画や音楽/音声を扱いますよね。こういう機能はたくさんの実数演算を行うので、固定小数点数演算を使って高速に処理しないと、コマ落ちしたりして使い勝手が悪くなるのです。
さて、固定小数点数演算の基本的な考え方は簡単ですが、次のことには少しテクニックが要ります。
以上です。
*1:引き算は負数の足し算に、割り算は逆数の掛け算として考えることができます。