Main Content

固定小数点データ型

デジタル ハードウェアでは、数値はバイナリ ワードで格納されます。バイナリ ワードとは固定長の連続ビット (1 と 0) です。この連続する 1 と 0 をハードウェア コンポーネントやソフトウェア関数がどのように解釈するかは、データ型によって定義されます。2 進数は固定小数点または浮動小数点データ型として表します。

固定小数点データ型はビット単位の語長、2 進小数点の位置および符号付き/なしによって特徴付けられます。2 進小数点の位置によって、固定小数点の値がスケーリングされて解釈されます。

たとえば、以下は一般化固定小数点数 (符号付きまたは符号なし) を 2 進数で表したものです。

ここで、

  • bii 番目の 2 進数です。

  • wl はビット単位の語長です。

  • bwl-1 は最上位 (最大) ビット (MSB) の位置です。

  • b0 は最下位 (最小) ビット (LSB) の位置です。

  • 2 進小数点は LSB の 4 桁左に示されています。この例の数値は 4 小数ビット、つまり小数部の長さが 4 になります。

固定小数点データ型は符号付きまたは符号なしです。固定小数点値が符号付きか符号なしかにかかわらず、バイナリ ワード内では明確にエンコードされません。つまり、符号ビットはありません。代わりに、コンピューター アーキテクチャ内で符号情報が暗黙的に定義されます。

符号付き 2 進固定小数点数は通常、コンピューター ハードウェアでは次の 3 つのいずれかの方法で表します。

  • 符号/大きさ – バイナリ ワードの 1 つのビットは常に専用の符号ビットで、ワードの残りのビットは数値の大きさをエンコードします。符号/大きさ表現を使用した否定は、符号ビットを 0 (正) から 1 (負) へ、または 1 から 0 へ反転することで構成されます。

  • 1 の補数 – 1 の補数の 2 進数を否定するには、ビット単位の補数が必要になります。つまり、0 はすべて 1 に反転し、1 はすべて 0 に反転します。1 の補数表記ではゼロの表現方法が 2 とおりあります。すべて 0 のバイナリ ワードは "正" のゼロを表し、すべて 1 のバイナリ ワードは "負" のゼロを表します。

  • 2 の補数 – 符号付き 2 の補数表現を使用した否定は、ビット反転 (1 の補数に変換) に 1 のバイナリの追加で構成されます。たとえば、000101 の 2 の補数は 111011 です。

2 の補数は符号付き固定小数点数を表す最も一般的な方法で、Fixed-Point Designer™ のドキュメンテーションでもこの表現が使用されています。