4

私は自分のメモを読んでいて、次のことに出くわしました。

For every real number there are various ways of representing
it in such a way. Therefore, computers fix two parameters (so
they do not need to be stored, and arithmetic is more
convenient):

- the base b (normally, it is 2, 10 or 16) and
- the position of the decimal (or binary) point (by normalising
the mantissa such that it satisfies 1/b ≤ m < 1)

Example: Normalised representations for r := 12.25 are,
- for b = 2, r = 1 × 0.110001 × 2^4,
- for b = 10, r = 1 × 0.1225 × 10^2 and,
- for b = 16, r = 1 × 0.C4 × 16^1.

値12.25の基数2、10、および16の浮動小数点数をどのように計算しますか。講師がb=2、b = 10、b=16の答えにどのように到達したのかよくわかりません。

4

2 に答える 2

5

例から、あなたの講師の「正規化された」の定義は、数値を +1 または -1 に x を乗じ、基数を掛けて整数乗したものとして表すことのようです。ここで、x は 1 未満の最大値です。積は、表された数に等しくなります。また、xは底の数字で表します。

たとえば、2 を底とする 12.25 を考えてみましょう。差し当たり 10 を底とすることにすると、12.25 は 1×12.25×2 0または 1×6.125×2 1または 1×3.0625×2 2または 1×1.53125×2 3または 1と表すことができます。 ×.765625×2 4または 1×.3828125×2 5など。これらのうち、フォームに適合する 1 未満の最大値は .765625 であることがわかります。したがって、12.25 は 1×.765625×2 4と表されます。次に、.765625 を基数 2 に変換する必要があります。

おそらく前のレッスンで説明したと思いますが、次のように行うことができます。分数に 2 を掛けて (1.0625)、再度分離します (1 と .0625)。新しい分数 (0 と .125) で繰り返します。分数がゼロになるか、必要な桁数になるまで繰り返し続けます: 0 と .25、0 と .5、1 と 0。必要なのは、ピリオドの後にそれらの数字が続くことです: .110001. したがって、講師の定義に従って正規化された基数 2 の 12.25 は 1×.110001×2 4です。

x の正しい値を見つけるためのルールは次のようになります。指数 0 から始めます。x が 1 より大きい場合は、基数で割り、指数に 1 を加えます。x が 1/base より小さい場合は、base を掛けて指数から 1 を引きます。x が 1/base と 1 の間になるまでこれを繰り返します (1/base を含むが 1 を除くので、x が 1/base に等しい場合は停止します)。

12.25 と 10 進数の場合: 指数 0 から開始します。12.25 を 10 で割り (1.225 を取得)、指数を 1 に増やします。もう一度割り算し (.1225)、指数を 2 に増やします。.1225 は 1/10 と1.

12.25 と基数 16 の場合: 指数 0 から開始します。12.25 を 16 で割り (.765625 を取得)、指数を 1 に増やします。.765625 は 1/16 と 1 の間にあるため、ここで停止します。

.765625 を基数 16 に変換するには: .765625 に 16 を掛けて、整数 12 (桁 C) と分数 .25 を取得します。.25 に 16 を掛けると、整数 4 と分数 0 が得られます。分数は 0 なので、やめます。16 進数は .C4 であるため、全体の形式は 1×.C4×2 1です。

場合によっては、「正規化された」の他の定義が使用されます。通常、x を 1/base から 1 の間に調整する代わりに、x を 1 から b の間に調整します。

于 2012-04-23T13:48:24.083 に答える
4

さまざまなベースで12.25という数字を表現しようとしています。したがって、正規化せずに。

バイナリの場合:

   12    - > 1100
   0.25  - > .01  (1 * (1/2)^2)
so 12.25   = 1100.01

六角の場合:

   12    - > C
   0.25  - > .4   (4 * (1/16)^1)
so 12.25   = C.4 

そして、小数点は指数項と連動してシフトされています。

お役に立てば幸いです。

私は方法を説明していないので、これは答えではないと思います。そこで、このトピックに関するMathForumsでのディスカッションへのリンクをいくつか示します。

2進数による筆算

浮動小数点の2進分数

基地に関する数学博士のFAQ

Base16浮動小数点除算の良いガイドをまだ探しています

BaseConvertDigitConvertは、浮動小数点数を処理できるオンラインの基数コンバーターです。

サイトはJavascriptを使用しているため、使用されているアルゴリズムにアクセスすることができます。

于 2012-04-20T10:16:55.843 に答える