主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

固定小数点データ型

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

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

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

ここで,

  • b番目の2進数です。

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

  • 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の補数は符号付き固定小数点数を表す最も一般的な方法で,定点设计师™のドキュメンテーションでもこの表現が使用されています。