見出し画像

【コンピュータ】小数を表す浮動小数点数とは?

こんにちは、すうじょうです。さて、今回は以前2の補数表現というコンピュータで負の数を表現する方法を解説しましたが、今回はその続編的な立ち位置の記事で小数を表現する浮動小数点を解説していきたいと思います。以下の2つの記事は以前の補数表現を解説した記事です。良ければご覧ください。

※本記事は、2023/04/04に内容を改訂しました。

2進数で小数を表す①「固定小数点数表現」

正の数を2進数に表す方法、負の数を表す2の補数については、すでに解説しています。しかし、これだけでは小数の表現はできません。そんな方法の一つが今回説明する浮動小数点数表現です。負の数のときと同様に現在主流の方法を説明する前に、簡単に小数を表す方法である固定小数点数表現をまず紹介したいと思います。

固定小数点数表現は、非常に簡単に小数を表すことができますが、現在はあまり使われていません。この表現方法は単純なものです。設定した桁数のうち、上位何桁かを整数部で、残りの下位何桁を小数点以下とするという表現方法です。ただし、このとき整数部は以前説明した2の補数表現で負の数を表現します。

例えば、10進数の2.5を整数部4ビット、小数部2ビットの計6ビットで表すことを考えます。10進数の整数部分2を4桁の2進数で表すと、0010となります。そして、小数部分0.5を2桁の2進数で表すと、10となります。よって、2.5を固定小数点表現の2進数で表すと、001010となります。

例で分かるように、この方法は高校で習った方法に桁を設定をしただけです。ちなみに、この方法で10進数の-2.5を表現すると、111010となります。上位4桁は補数表現の-2です。分からない方は、前回の記事の後編をご覧ください。この方法でも問題がないように思えますが、現在あまり使われていないのは欠点があるからです。

その欠点は、浮動小数点表現に比べて、表現できる数の幅が狭いということです。これは、桁が固定されているために表現できない数が多いためです。さきほどの例では、小数点以下が2桁なので、0.25単位までは表現できますが、それより小さい数である0.125単位の数が表現できません。もちろん、設定する桁数を増やせば、問題は解決します。しかし、次に説明する浮動小数点では幅を調整することができ、優れています。

2進数で小数を表す②「浮動小数点数表現」

さて、ここから浮動小数点表現について説明していきます。まず、簡単に二つの違いとしては、浮動小数点では、位が固定されていません。このため、多くの数を表現可能です。基本的に現在ほとんどのコンピュータでは、小数の表現にこの浮動小数点が用いられており、IEEEアイトリプルイー754形式を標準の規格としています。

最初に10進数から浮動小数点へと変換するための形とその説明をします。

浮動小数点

では、ここから例題を用いて実際に10進数から浮動小数点へと変換をします。

浮動小数点問題

浮動小数点の場合、数を指数を用いて表現しているので、表現できる数の幅が広いです。しかし、この方法でもあまりにも小さい数は表現できません。また、大きい数になってくると、表現できる数の間隔が広くなってきます。しかし、固定小数点と比べると、自由度が高く、優れているために、この表現が現在使われています。

この記事では比較的説明に適している単精度32ビットの場合を紹介しましたが、実際は倍精度64ビットと四倍精度128ビットも規格としてあるので紹介だけしておきます。変換方法や各部の説明はほば単精度の場合と同じなので省略します。

浮動小数点補足

最後に

さて、これでコンピュータに関する基礎知識の一つである浮動小数点に関する説明は以上です。2の補数表現と合わせると、負の数と小数の表現をおさえることができたと思います。書くのが大変なのでいつになるか未定ですが、また別の情報系の解説記事を出すと思います。では。

この記事が気に入ったらサポートをしてみませんか?