固定小数点
読み:こていしょうすうてん
外語:fiks/eksponent/a
小数点の桁位置が固定の実数表現のこと。このような形式で表わされる数値を、固定小数点数という。
概要
BCDとして考える場合とバイナリとして考える場合とがあり、バイナリの場合はレジスターの一部ビットを小数部として考える。
いずれの場合も、小数があるかはプログラムで判断して扱う。計算機は、小数点を意識しておらず、また意識しなくても正常に計算できるように固定小数点は考えられている。
特徴
BCD
事務計算などでは主流の方式で、一定の桁数で表現可能な数値については丸め込みが発生せず、厳密に扱うことができる。プログラミング言語COBOLなどで採用されている。
必要な桁数分のメモリーさえ確保すれば、どんな大きさの値でも計算可能であるため、現金の計算などでよく使われている。
逆に科学技術計算などでは極端に大きい数や小さい数を扱う場合があり、これを固定桁数で表現すると桁溢れなどを起こすか、極端に大きな桁数を用意しなければならないため大量のメモリーを消費してしまう。このような数を扱うには一般に浮動小数点による数値表現を用いる。
バイナリ
あまり使われることは無いが、精度が低くても良い場合に、バイナリの固定小数点が使われることがある。
例えば一つのレジスターの値として、下位3ビットを小数部として扱う、といったように実装される。
仮に、ビット3とビット2の間に小数点があるとすると、重みは次のようになる。
- ビット3: 1
- ビット2: 1/2
- ビット1: 1/4
- ビット0: 1/8
この場合、「1000b」は1である。半分にした「0100b」は1/2であり、更に半分にした「0010b」は1/4である。桁の重みは論理的に正しいと判断できる。
この方法では、小数点を書く場所はない。また計算機は小数点の位置は知らず、それを扱う人間が判断する。この取り決めは、人間が「そこに小数点があると思う」だけで成立する。
例えば、次のようになる。
1/2+1/4=3/4 = 0100b+0010b=0110b
この二進数の値を「1/2+1/4=3/4」と見るか「4+2=6」と見るかは人間の判断であるが、このように判断を変えるだけで、計算機自体に特殊な加工をせずとも、小数の計算が可能となるのである。
再検索