3

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 になる可能性もありますが、それも間違っています。

小数部分の各桁をどのように区切りますか。

4

1 に答える 1

4

いいえ、それはあなたが計算する方法ではありません...小数点から右に移動するにつれて。精度が上がります。

この式を使って計算 n の値が -1 -2 -3 のように減少すると考えてください...

現在、10 進数値 = 0*2^-1 + 0*2^-2 + 1*2^-3 + 0*2^-4 + 0*2^-5 + 1*2^-6 など、最後まで

于 2016-11-18T03:45:02.717 に答える