2

私はこれにかなり取り組んできましたが、「frac」の部分について何かが欠けていると思います。この 5 ビット float では、符号ビットが最上位で、次の 2 ビットは指数で、指数バイアスは 1 です。最後の 2 ビットは仮数 (仮数) です。

だから私はたくさんの値を持っていますが、メソッドをよりよく理解しようとしています. 最初のものは次のとおりです。

0 00 01

私は方程式が

V = (-1)^s * m * 2^E

符号はゼロで、数値は非正規化されているため、E = 1-バイアス = 0 (そうですか?)

ので、私は持っています:

V = 1 * m * 1

私が抱えている問題は、仮数の値にあります。非正規化数の場合、0.frac に等しく、ここの frac は 1 に等しいと思いましたか?

m = .1 でしょうか?

fracがビット数の値であるように見えるオンラインのものをたくさん見つけましたか?

もしかしてm=1/5?

最後に、答えは x/4 で表すように言われました。では、m は 1/4 になるはずですか? もしそうなら、なぜですか?

誰かが提供できる助けや教えてくれてありがとう!

4

1 に答える 1

2
  1. 指数は通常、「指数」フィールド (「 」と呼びましょうex) の値からバイアスを引いたものとして計算されます。これにより、指数フィールドに負でない数値のみを保持できます。ただし、例外が 1 つあります。以下を参照してください。

  2. 通常、仮数は先行する 1 なしで格納されますが、これは暗黙的です。これは必ずしもそうである必要はありません (たとえばlong double、先行するものを明示的に保持するなど) が、スペースを節約することは理にかなっており、値の一意の表現があることも意味します。

  3. 仮数が先頭の 1 を格納しない場合、非正規化数の特殊なケースがあります。つまり、指数フィールドがすべてゼロの場合です。その場合、暗黙の 1 は存在せず、遷移を単調にするために、最小の可能な指数は、あなたが正しく言うように 1 − exです。

  4. 仮数はこの 0.01b、つまり 1/4 です。数値が非正規化されているため、先頭に 1 がなく、実際の仮数は 1/4 です。指数はゼロ (つまり 1 −  1) であるため、数値の合計値は 1/4 です。

于 2013-10-10T08:05:20.043 に答える