• 締切済み

浮動小数点表示の考え方

平成22年春期 応用情報技術者試験 午前の問い2で出た問題についてです。 10進数の0.25を2進数の浮動小数点表示した場合、 どのような表示になるかという問いで分からない部分があります。 0.1×2^-1で表せるので、指数部は-1で仮数部は1となると言っているのですが、 どうして0.1の1が最上位ビットとして考えるのかわかりません。 解説動画みてもわかりませんでした。 10進数の1.25を2進数にすると、1×2^0+0×2^-1+1×2^-2ですが、 この場合は0.101×2^1として表して指数部は1で仮数部は101と考えるという事でしょうか? なぜ1.01×2^0としてそのまま扱わないのか良くわかりません。 情報系の計算方法としては、小数点より前の数字を0にして有効数字をカウントするのが一般的という事でしょうか? 分かる方教えてください。 [問題文] http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2010h22_1/2010h22h_ap_am_qs.pdf [答え解説] https://www.youtube.com/watch?gl=JP&hl=ja&v=lqZBsBmLtpI

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.5

たしかに、「仮数部の最上位桁が1」という文章だけでは、どこに最上位の1を持ってくるかが不明です。 しかし、その下の図に「小数点の位置」と書いてあります。 これは、 seeeefffffffffff というビットパターンがあったら 0.fffffffffff * 2^eeee (s=0) -0.fffffffffff * 2^eeee (s=1) と解釈する、ということです。 「仮数部の最上位桁が1」というのは、 fffffffffff のビットパターンが 1xxxxxxxxxx という形になるようにする、というこです。 > なぜ1.01×2^0としてそのまま扱わないのか良くわかりません。 では、これを実際に符号化してみましょう 正なので s=0 0乗なので e=0000  まではできますが 1.01から仮数部fへの変換ができません。 ・fには整数部が無い ・小数部だけ見ると、最上位が0なので規格に合わない ここで 「数値の一番上を1にしてそのまま」→ f=10100000000 としてしまうと、今度は読み出すときに 0.101 * 2^0 と解釈するので、元の値にはなりません。

miniture_min
質問者

お礼

回答ありがとうございます。 >しかし、その下の図に「小数点の位置」と書いてあります。 やっと意味がわかりました。ありがとうございます。 この図示の「小数点の位置」という言葉が何を指しているのかわかってませんでした。 「小数点の位置」という図示をもって、仮数部最上位ビットを少数第一位と考えるという指示なのですね。 少数点の位置という矢印を、仮数部のビットのどこかを指すことで、 数値の指数表現時の有効数字部の表示方法を指示しているということですね? この表現は浮動小数点表示を説明する際の一般的な表記なのでしょうか?

  • honor
  • ベストアンサー率35% (25/71)
回答No.4

>その最上位が1となるとはどういうことを指すのでしょうか? >0.01の有効数字は1だけだと思うのですが、 >これを仮数部としてそのまま入れれば、最上位ビットは1だと思うのですが、どこが間違っているのでしょうか? 0.01 * 2^0 仮数部は01000000000 最上位桁は0なのでこの表現は× 0.1 * 2^-1 仮数部は10000000000 最上位桁は1なのでこの表現は○ 1.0 * 2^-2 仮数部に1.に当たる部分は無いので入りません。

miniture_min
質問者

お礼

回答ありがとうございます。 >仮数部に1.に当たる部分は無いので入りません。 No.4の方の回答を見てやっと理解できました。 0.01を仮数部の表現方法として指定した「少数の位置」という文言を正として考えるのですね。 その文言の意味が分かっておらず、指数表現は一般的に1の位から表現すると思っていたので、分からなくなってました。

  • f272
  • ベストアンサー率46% (8021/17145)
回答No.3

> 小数点より前の数字を0にして有効数字をカウントすると指定している部分はどこなのでしょうか? 問題文の図中で指数部と仮数部の間に小数点の位置が書いてあります。 そこを小数点にして仮数部の最上位けたが1になるようにすれば、小数点より前の数字は0になるしかありません。

miniture_min
質問者

お礼

仮数部とは指数表示を行う際の有効数字ですよね? その最上位が1となるとはどういうことを指すのでしょうか? 0.01の有効数字は1だけだと思うのですが、 これを仮数部としてそのまま入れれば、最上位ビットは1だと思うのですが、どこが間違っているのでしょうか? 1.0*2^-2という表現にならない理由がわかりません。 何か基本的な事を分かっていないのでしょうか?

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

10.0 * 2^-3 1.0 * 2^-2 0.1 * 2^-1 0.01 * 2^0 0.001 * 2^1 全て、同じ値です。 これをそのまま指数、仮数に変換したら、全部バラバラのビットパターンになります。 それでは、こまりますよね? ですから、同じ値は同じビットパターンになるように調整します。 この問題の場合は 0.1xxxxx * 2^n という形にする、と決めたので、そのように調整します。 これが一般的かどうかは関係無く「こう決めた」ということが大事です。 一般かどうかだと、現在多くの場面で使われている IEEE754という規格では 1.xxxxx * 2^n の形にします http://ja.wikipedia.org/wiki/IEEE_754 だからと言って、この問題を1.xの形にしたら不正解になります

miniture_min
質問者

お礼

回答ありがとうございます。 「この問題の場合0.1xxxxx*2^nという形にする、と決めた」 のはどこなんでしょう。 「仮数部の最上位けたが1となるよう」の部分でしょうか? これだけだと1.xxxxxx*2^nにするという意味だと思ったのですが、ちがうのでしょうか? 何か根本的な部分を私が理解してないんでしょうか・・・

  • f272
  • ベストアンサー率46% (8021/17145)
回答No.1

> なぜ1.01×2^0としてそのまま扱わないのか良くわかりません。 小数点より前の数字を0にして有効数字をカウントするからです。 情報系の計算方法として一般的ということではなく,問題でそのように指定されているからそうするのです。

miniture_min
質問者

お礼

回答ありがとうございます。 小数点より前の数字を0にして有効数字をカウントすると指定している部分はどこなのでしょうか?

関連するQ&A

  • 平成18年 秋期 基本情報技術者 午後 問03

    平成18年 秋期 基本情報技術者 午後 問03について教えてください>< この問題を今度授業で解説しなければならなくなったのですがどのように解説したらいいかわからず、さらには答えまでわからない始末・・・;; 誰かこんな私に解説をよろしくお願いいたします! ■問題ページ http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_2/2006h18a_fe_pm_qs.pdf P9~11 ■解答 http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_2/2006h18a_fe_pm_ans.pdf よろしくおねがいします!!

  • 基本情報技術者 平成23年秋午後問題 問8について

    基本情報技術者 平成23年秋の午後問題 問8についてどなたか一部ご解説をいただけませんでしょうか? 状態遷移表の見方が全然わかりません。 どのように解いていけば良いのかチンプンカンプンです。 大変すみませんが、よろしくお願いいたします。 http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_2/2011h23a_fe_pm_qs.pdf

  • ITサービスマネージャー 平成23年秋の解説

    問3の設問1のキャパシティ管理についてですが、CPU負荷の求め方と1年後までに増設すべきディスクドライブの計算方法がよくわかりません。 詳しい方教えていただけませんでしょうか? http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_2/2011h23a_sm_pm1_qs.pdf

  • シスアド 過去問 午後

    http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_1/2008h20h_ad_pm_qs.pdf 上記URLのp9設問2のiとjなのですが、なぜこの解答になるのかがわかりません。 ご教示いただけませんでしょうか。

  • 浮動小数点について

    当方、浮動小数点を勉強しているのですが、 テキストの解説を読んでも理解が出来ません。 正規化とか指数と仮数の意味が分かりません。 そこで質問なのですが、浮動小数点の計算方法を教えて下さい。 IEEE形式の浮動小数点も教えて頂けると助かります。 また、下記の問題について解説して下さい。 数値を16ビットの浮動小数点表示法で表現する。 形式は図に示す通りである。10進数0.375を正規化した表現は、どれか。 ここでの正規化は、仮数部の有効数字よりも上位の0が無くなるように、 指数部を調節する操作である。 (図は添付します) 何故「E」の値が「1111」になるのでしょうか。 お手数ですが、ご教授お願いします。 尚、特に分かり易いホームページがあったら、 そのURLを記載して頂いても結構です。 以上、よろしくお願い致します。

  • シスアド 過去問

    http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_2/2008h20a_ad_am_qs.pdf​ 上記の問31はなぜ解答は「エ」になるのでしょうか。

  • シスアド 過去問

    http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_2/2008h20a_ad_am_qs.pdf​ 上記の問40はなぜ「ウ」になるのでしょうか。

  • シスアド 過去問

    http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_2/2008h20a_ad_am_qs.pdf 上記の問38はなぜ780人日になるのでしょうか。 計算方法を教えていただけないでしょうか。

  • 浮動小数点の問題です。

    10進数+0.375を浮動小数点で記憶させ、その記憶領域のダンプリストを読み取ると、 0.375は16進数で(1)に、 -1は16進数で(2)となる。 答えは(1)は7F00、(2)8600です。 この2つの問題の途中式と解説をお願いします。 バイト型:バイト数は1バイト,負の補数は2の補数で表す 整数型:バイト数は2バイト,負の補数は2の補数で表す 浮動小数点:バイト数は2バイト,符号1ビット,指数部5ビット,仮数部10ビット ビット番号0:符号部.仮数部の符号が入っている.0なら正,1なら負 ビット番号1-5:指数部.負の値を2の補数で表す ビット番号6-15:仮数部.ビット番号6を小数点第1位とする仮数部の小数点以下の絶対値が、正規化された2進数で入っている 正規化とは,仮数部が2進数で0.1以上1.0未満になるよう指数部を増減する操作である

  • シスアド 過去問 待ち行列モデル

    http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_2/2008h20a_ad_am_qs.pdf 上記の問13の待ち行列モデルなのですが、待ち行列モデルとは何でしょうか。 また、なぜ解答は「エ」になるのでしょうか。