• ベストアンサー

固定小数点数、浮動小数点数について

学校から課題が出ているのですがさっぱりなので教えていただければ幸いです。 課題:11051120 この数を32bitの固定小数点数、浮動小数点数であらわせ (1)固定小数点数、浮動小数点数とは何か (2)数値をあらわすための手順 この2点を教えてください。 1~10まで教えろとは言いません。ただ、やろうにも全くわからないので、ヒントだけでもいただけたらと思っています。 提出期限は10日までなので、よろしくお願いします。

  • ju11
  • お礼率0% (0/5)

みんなが選んだベストアンサー

  • ベストアンサー
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

その他の回答 (4)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.5

(1a)固定小数点数とは何か http://ja.wikipedia.org/wiki/固定小数点数 を参照。 ---------------- (2a)課題の10進数を32bitの固定小数点数であらわすための手順 Windows標準の関数電卓で10進数 11051120 を2進数に変換する。 http://aska-sg.net/glossary/pages/_popup/p_1677mansyoku-1.html 結果は24桁のbit列になるので,先頭に8bit分の 00000000 を補って32bit長にする。 答)00000000 10101000 10100000 01110000   (注:見やすさのために8bit毎に空白を挿入した) ---------------- (1b)浮動小数点数とは何か ANo.1で紹介されたリンク先を参照。 ---------------- (2b)課題の10進数を32bitの浮動小数点数であらわすための手順 先の答を指数と仮数の組合せで表現すると,  10101000 10100000 01110000 × 2の0乗 =1.0101000 10100000 01110000 × 2の23乗 (1b)のリンク先で解説されている,現在もっとも一般的なIEEE754形式で解答する。   >単精度の場合: -1の(符号部)乗 × 2の(指数部-127)乗 ×(1+仮数部) なので, 符号部1bit:0(正の数) 指数部8bit:10010110(10進数計算 指数部=23+127 の結果) 仮数部23bit:0101000 10100000 01110000 よって, 答)0 10010110 0101000 10100000 01110000   (注:見やすさのため1bit,8bit,7+8+8bitとなるよう空白を挿入した)

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

だいぶ省略しているので、あとは調べてください。 (1) 固定小数点数とは、書いて字のごとく、小数点が固定されている表現方法 浮動小数点数とは、書いて字のごとく、小数点が固定されていない表現方法 10進数で言えば 5.43 10.000 92.7 といった感じに、小数点の位置が決まっているのが固定小数点 5.43 1.0000 x 10 927.0 x 10^-1(10の-1乗) のように、指数形式(「仮数」x「基数」の「指数」乗)で表わし、小数点の位置が固定でない(0乗の位と-1乗の位の間にあるとは限らない)のが浮動小数点数 2進法の場合は基数を2として考える。 (2) 固定小数点数の場合 1.32ビットのうち、何ビットを小数部に使うか決める。 通常は指定されている。今回は指定が無いので勝手に決めるしかない? 2.整数部と小数部にそれぞれの値を入れる。 今回の例なら整数部は11051120,小数部は0 浮動小数点数の場合 1. 32ビットを指数用、仮数用(+符号用)に分割 2. 元の値を指数表現にする。 このとき、正規化するのが普通(一定の約束を守るように、指数と仮数を調整する) 3. 指数、仮数(符号)を1で決めた領域に入れる 浮動小数点数には国際規格があり、多くの場合それが使われている。 しかし、その規格外の浮動小数点数というのも作れるので、この問題文だけでは、変換はできない。 > 課題:11051120 この数を32bitの固定小数点数、浮動小数点数であらわせ 答: 固定小数点数、浮動小数点数についての条件が足りないので無理

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.3

ネットで検索もしてみましょう。ご自分にとって分かりやすい説明が転がっているかも しれません。まあ、私なりに何も知らない人を前提に少し書いてみます。 コンピュータで数値を表す方法は幾つもあります。そのなかで代表の二つが固定小数点 と浮動小数点です。 固定小数点という名前は、きっと浮動小数点から来ていて、固定小数点と言う言い方は 違和感を感じるでしょう。要するに整数のことです。0から前後に1づつで表せる数値で あり、そのデータ領域のサイズで表せる範囲が違います。 0から前後と書きましたが、符号付きと符合なしでは違います。 8ビットのデータ領域では2の8乗で256通りの数値を表せます。 符合なしであれば正の整数ということになりますから、0~255までの256通りです。 符号付きでしたらマイナスも表せますから、-128~127までの256通りです。 まあ、固定小数点は割と単純です。それに対して、浮動小数点はなかなか理解するには やっかいでしょう。 浮動小数点の存在目的は何か、から説明したほうがいいでしょう。 それは同じデータ量で表せる桁数を多くしたいがために他なりません。 桁数を多くするための犠牲が精度です。 2進数ではややこしいので後からご自分で研究してもらうということで、10新数で 説明します。符号無しの正の値で説明します。 10桁の10進数は固定小数点では0~9999999999までが表せます。 桁数としては10桁ですね。 浮動小数点では、これを実数と桁に分けます。例えば、6桁を数値に4桁を桁数に 下とします。すると0から9999999の9999乗まで表せます。9999桁の数字です。 固定小数点の10桁とは桁違いです。ただし、実際の数値は6桁しか表せません、これが 精度と言われます。例えば、1234560は9999桁の範囲で精度が6桁ですから表せます。 しかし、1234561は精度が7桁になるから表せません。1234560の次は12345670になる 訳です。これが精度を犠牲にして桁数を欲張った結果です。

回答No.2

教科書なりで教わっていませんか? まぁ、32ビットとかいうとややこしそうに思えるならば、10進で8桁とかでも良いでしょう 固定小数点というのは、小数点の位置を固定したものです。たとえば8桁のうち整数部を5桁、小数点以下を3桁とします。100÷3ならば 00033.333 となるわけですね。 浮動小数点というのは小数点の位置が変わる・・つまり指数表現しようというものです。 たとえば仮数部分が5桁、指数が3桁とすれば先ほどの例なら 3.3333×10^(001) という具合になるわけですね。 実際には符号ビットなども必要になりますね。 いきなり >11051120 この数を32bitの固定小数点数、浮動小数点数であらわせ というのは無理があって、その前段階で必ずどういうフォーマットにしているのかの説明があるはずです。ピンポイントでそこだけ読むのではなく、その前後も含めてちゃんと読みましょう。

関連するQ&A

  • 浮動小数点数について

    私は浮動小数点数を整数値に変換したいのですが、 各種検索エンジンで探してみたのですが、 ほしい情報が得られなかったので どなたか浮動小数点数を整数値化する方法を知っていましたら 教えていただけないでしょうか?sprintfで表示可能なのはわかりましたが、 表示だけではなく、処理の中でも使用するので、変換できないと だめなんですが、どなたか知っていませんでしょうか?

    • ベストアンサー
    • Perl
  • 浮動小数点数型

    単精度浮動小数点型と倍精度浮動小数点数型、それぞれ値がとりうる範囲を教えてください。 単精度浮動小数点型 負の値は -3.4028235E+38 ~ -1.401298E-45、 正の値は 1.401298E-45 ~ 3.4028235E+38 の範囲の値 倍精度浮動小数点数型 負の値は -1.79769313486231570E+308 ~ -4.94065645841246544E-324、 正の値は 4.94065645841246544E-324 ~ 1.79769313486231570E+308 の範囲の値 とは記述してあるのですが、実際に小数1桁なら整数部はどのくらいの範囲の値がとれるのか、皆目わかりません。 どうか、わかりやすく教えてください。 よろしくお願い致します。

  • 16ビット浮動小数点数の表現方法について

    学校の課題において、ある数を2進数で表現し、さらにその数を16ビット浮動小数点数で表しなさい。またそのとき生じる誤差の名称を記しなさい、という課題がでており取り組んでいるのですが、ネットで調べていても計算方法が理解できず行き詰っております。どなたか計算方法の手助けをお願いできないでしょうか。 与えられた条件 符号ビット:1ビット(0:正、1:負) 指数部:4ビット 仮数部:11ビット 16ビット浮動小数点数で表す数 10011100011000011 です。計算方法を理解したいので、なるべく詳しくお願いいたします。 誤差の名称もできればご教授願います。

  • 浮動小数点数

    再質問で畏れ入ります。 数値を32ビット浮動小数点形式で表す。指数部は2を基数とし、負数は2の補数で表現する。10進数0.375をこの2を基数とした浮動小数点形式で正規化したものはどれか。ただし結果は16進数で表現する。 答え:7FC00000 という問題です。 まず0.375を2進数に 0.011 正規化 0.11 * 2^-1 指数部-1を2進数で求める -0000 0001 ->1111 1111 仮数部符号は正の数なので0 0111 1111 ???? ???? ???? ???? ???? ???? と・・・ ここの部分からわかりません・・・ (なぜか手持ちの参考書には省略してあり・・・) 7Fの部分はこれで間違いないでしょうか? またそのあとのC00000 はどうやって導くのか教えてください。 お願いいたします

  • 浮動小数点数の表現について

    浮動小数点数の表現で、このIEEEともう一つの方式の違いは何でしょうか? 参考書にこう載っていましたが、よく理解できませんでした。 違いを教えてください。 10進数の28をIEEE仕様の浮動小数点数で表示します。 仮数部を2進数に (28)10 → (11100)2 仮数部の正規化 (11100)2 ×2 0 →(1.1100)2 ×2 4 指数部をイクセス表記に2 4 → 2 131 10進数の28をもう一つの仕様の浮動小数点数で表示します。 仮数部を16進数に (28)10 → (1C)16 仮数部の正規化 (1C)16×16 0 → (0.1C)16 ×16 2

  • 32bitの浮動小数点数表現について悩んでいます

    情報処理の初心者です。 今、14070366(10)を数値データとしてとらえ、 32bitの浮動小数点数で表現するという問題について考えています。 14070366(10) =100111000001010000101110(2) 10進数を2進数に基数変換した部分、25桁が仮数部になるんですよね? 符号部は+なので0。 では指数部の7桁には何が入るのでしょうか? 以上が私の分かっていることですが、 最終的な解答を16進数で表記すると、 14070366はどうなるのでしょうか? お願いします。

  • 浮動小数点表示と固定小数点表示

    固定小数点0.00128を浮動小数点表示すると0.128×10^-2と学校で習ったのですが、1.28×10^-1や128×10^-5としてはいけないのでしょうかどなたか教えてください。

  • 固定小数点と浮動小数点

    電算機の小数点認識に固定小数点と浮動小数点というのがあると聞きました。前者は分かるのですが、浮動小数点のWikiとかの記述を見てもあまりピンときませんでした。わかりやすい説明はないでしょうか。

  • OSによる浮動小数点数の解釈と出力の仕組み

    現在主流となっているコンピューターのアーキテクチャにおいては、実数表現のために浮動小数点数という手法を用いていますが、浮動小数点数表現された2進数はただの2進数であり、たとえばWindowsのプログラムが浮動小数点数を10進表記で表示したりする際には、OSのどのあたりの機能が浮動小数点数を解釈して10進数表記にするのでしょうか?

  • β進n桁の浮動小数点

    2進3桁、ML(絶対値最大の浮動小数点数)=1 MU(絶対値最小の浮動小数点数)=2の浮動小数点数の 体系で表現できる数は全部でいくつか、すべて挙げよ。 また、計算機イプシロンを求めよ。 ・・・っという問題がわからなくて困っています。 どなたか、解法手順またはアドバイスをよろしくお願いします。