fc2ブログ

つれづれ。

20+2歳女の色々。

解ることと理解すること。

何だかんだで昨日の問題を理解しました。
色々知識不足や経験不足が重なっての難題なだけで、
実はすごく簡単なことでした。

次から正しい問題と解説を書いとく。

ほとんど書き殴った状態。

[問題文]

IEEE754規格による、単精度の浮動小数点表示法は、次のとおりである。
この規格に従って表示したとき、指数部Eのビット列が10000010となる10進数はどれか。

0 < E < 255
 (-1)^S * 2^(E-127) * (1+F)

ここでの記号は、
S : 実数の符号
E : バイアス付きの指数
F : 純小数




まず、語句の確認から。

[IEEE754 Wikipedia]
http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0#IEEE.E6.96.B9.E5.BC.8F.EF.BC.88IEEE_754_.E5.BD.A2.E5.BC.8F.EF.BC.89
簡単に言えば、単精度の場合、Eから必ず127を引きますよ的規格。
他にも特徴があるらしいけど、ここでは割愛。リンク貼ってるから。
そんなわけで、そうすることによって、Eは-127~128とすることができ、
小数点以下が求められるということ。

[純小数 Wiktionary]
http://ja.wiktionary.org/wiki/%E7%B4%94%E5%B0%8F%E6%95%B0
まあ、1より小さい小数のこと。




解くにあたって、実数の符号はこの際どうでもいい。
どうせ、選択肢が全部正の数だから。

問題は、EとF。

(1)
Eは、10000010が2進数なので、10進数では130となる。
で、130 - 127を計算して、3。
この時点で、(-1)^S * 2^3 * (1+F) とすることができる。

(2)
次に、Fは純小数なので、(1+F)は必ず1 < (1+F) < 2になる。
たとえば、(1)の段階で出た2^3は、整数部が2進数3ビットのことであり、
最大値に直すと111の2進数になる。ちなみに、2進数111は10進数7。
そこに、F = 0.15とすると、1+F = 1.15。
さらに計算すると、7*1.15 = 8.05になる。
つまり、整数部を表現するには、
2^(E-127)で求められるビット数に1ビット増やすだけで、済んでしまう。
あとは、4ビットで整数部が表現できるものを探せばいい。




自分にだけわかるように書いてみた。
わかることと理解することは全く違って、理解できてるからこそ、人に教えられるのだと思う。

途中からグダグダなのは、彼氏との仲のことでイライラしてるからなんだと思うヨ。
スポンサーサイト



コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

http://832honey.blog119.fc2.com/tb.php/294-83458e21

この記事にトラックバックする(FC2ブログユーザー)

 | HOME | 

プロフィール

832

Author:832
832のつれづれブログ。
色々なことを見て、思ったことをそのまま書く、オレサマブログ。
URLにリンクは張らない主義でやってます。

1日に何度も書いてる。
暇なときほど多く更新してる。
質より量でよろしく。
見る人によっては、不快感を催す恐れあり。

ぜひとも、誰かバトンくれ(・w・)

↓ワーネバ画像用
ワールド・ネバーランド ~オルルド王国物語~ ©althi Inc. ©1997 藤原カムイ

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブログランキング

FC2 ブログランキング
人気ブログランキング

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

色々貼り付け


 

Designed by Miya@loconet 

Copyright © つれづれ。 All Rights Reserved.