1

次の 2 つの数値を 23 ビットの小数部分を 7 ビットの小数部分に変更して IEEE Floating Point Standard (FPS) modified (16 ビット) に変換し、それらを合計したいと考えています。しかし、それを正しく行ったかどうか、結果を10進数に変換して約28.625を取得する方法がわかりません

括弧内の数字は隠しビットです (たとえば、3.5 を 11.1*2^0 に変換してから 1.11 *2^1 に変換するため、左端の「1」を省略して隠しビットと呼びます)

ここに画像の説明を入力

4

1 に答える 1

3

指数が異なる場合、仮数を追加して数値を追加することはありません。これは、2525 を 3375 に加算して 25.25 を 3.375 に加算しようとするようなものです。うまくいきません。対応するビットをシフトし、それに応じて指数を調整することで、対応するビットを揃える必要があります。これらの 2 つの番号がある場合:

  • 1.1001010 2 •2 4
  • 1.1011000 2 •2 1

次に、小さい方の数値を調整して、次のペアを指定します。

  • 1.1001010 2 •2 4 (オリジナルと同じ)
  • 0.0011011 2 •2 4 (右に 3 ビットシフトし、指数に 3 を加算)

次に、それらを追加します。

  • 1.1100101 2 •2 4

次に、必要に応じてその数値を丸め、別の形式に変換できます。

于 2013-07-29T02:21:43.727 に答える