pi を 8087 のレジスタ スタックの一番上にロードし、その定数を短い実メモリ変数に返す簡単なプログラムを作成しました。
FLDPI ;load pi
FSTP DWORD PTR shortReal ;store pi in memory, then pop stack
shortReal に格納される値は 40 49 0F DB hex です。これは、バイナリで 0100000001001001111111011011 に変換されます。
最初のビットは 0 なので、正の数です。バイアスされた指数部分は 1 に変換されます。
したがって、実際の数値は次のようになります。
1(暗示点)10010010000111111011011
1(暗黙のポイント)1 は 3. に変換されるため、これは PI の正しい整数部分ですが、このポイント以降、私の理解は崩壊します。
現在、次の番号が残っています。
0010010000111111011011
001 は 1 に変換できますが、これは正しいでしょう。ただし、これは、次の番号が 001 になり、これが再び 1 になることを意味します。これは間違っています。または、0010 で 2 になる可能性もありますが、それも間違っています。
小数部分の各桁をどのように区切りますか。