• ベストアンサー

IEEE754 浮動小数点について

IEEE754 浮動小数点で (-1)~s×1.M ×2(E-127) とありますが、2の指数部のE-127の理由がわかりません。 なぜ、127を引く必要があるのでしょうか? また、仮数部の1.Mとする理由と併せて教えていただけると助かります。 ※べき乗部の指数などの表記がうまく入力できない為、見づらくて申し訳ありません。 アドバイスよろしくお願いいたします。 また、参考サイトなどあれば、リンクお願いします。

質問者が選んだベストアンサー

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

http://okwave.jp/qa/q2700742.html の私の過去の回答ANo.3 >仮数部の1.Mとする理由 0.M ではなく 1.M(いわゆる,隠れ"1"表現)を用いることで,仮数部の有効ビット数(精度)を1ビット長くすることができるから。

abuhiro
質問者

お礼

非常に参考になりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2
全文を見る
すると、全ての回答が全文表示されます。
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

http://ja.wikipedia.org/wiki/IEEE_754 の「32ビット単精度」の項を見てください。 指数部を127でバイアスしている理由も仮数部のけち表現についても書かれています。 なお、非正規化数の場合は仮数部が1.Mになりません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

    浮動小数点数の表現で、この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

  • 浮動小数点について

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

  • 浮動小数表記方式

    こんにちわ すいません、よろしくお願い致します。 以下のIEEEが提唱する32ビット浮動小数点の表記形式を用いて、十進数の503.625を表記すると、どのようになるか。#IEEEの32it浮動小数点表記方式#符号部:1bit(0:正、1:負)指数部:8bit(2の乗数部分に127を加える ex.8乗→8+127=135=二進数で10000111)仮数部:23bit(仮数を二進小数で1.xxxxxとなるよう調整したxxxxxの部分)符号部、指数部、仮数部の順で左から詰め、仮数部の残りは0で埋める。それを16進数で表す。

  • 浮動小数点の表現(基本情報)

    数値を16ビットの浮動小数点表示法で表現する。形式は図に示すとおりである。10進数0.375を正規化した表現はどれか。ここでの正規化は,仮数部の有効数字よりも上位の0がなくなるように指数部を調節する操作である。(H9 秋 問13) S(1ビット):仮数部の符号(正は0,負は1) E(4ビット):2のべき乗の指数部で,負数は2の補数 M(11ビット):仮数部の絶対値 【参考にしたサイト】 http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/fudo.htm 【質問】 Eは、負数は2の補数とありますが、Eの先頭1ビットは符号を表すのでしょうか? 手持ちの参考書にも同じような説明があったのですが、先頭が符号なのか分かりませんでした。IEEE754では、指数にE-127を使っているので、非負、負の表現は出来る事は分かりました。しかし、上記の場合は、非負、負の判断はEにも符号ビットがないと出来ないように思い質問しました。回答宜しくお願い致します。

  • IEEE754 浮動小数点の問題

    -10.375(10進数)をIEEE754規格の単精度浮動小数点表現のビット列で示せ。という問題で、 ・仮数部の符号ビットが1bitで指数部が8bitで仮数部が23bitで合計32bitでいいんですよね?本によって割り当てが違うんですけど。 ・僕自身この問題を解いた結果、1 10000010 0100110・・・0 (一番前が、符号bit。真中が指数bit。一番後ろが仮数bit) で合っていますか?答え合わせのほどを。 どうか、願いします。

  • 浮動小数点について

    独学でプログラミングの勉強をしています。Wiki等で調べたりしましたが、 下記テキストの質問の計算が全く分かりません。 分かりやすく説明して頂けるとありがたいです。 宜しくお願い致します。 質問: 二つの浮動小数点の数字があり、SEEMMMM(S=符号付数値、E=指数、M=仮数)の形式で表示されています。 指数はエクセス数50、仮数は符号付数値、小数点は右の仮数に表示されます。 0 53 1110 0 50 3020 二つの数字を加算し、正しく表示された浮動小数点形式と実数をすべての計算式も含め表しなさい。

  • 浮動小数点の正規化の必要性について

     浮動小数点の正規化の必要性について教えてください。  浮動小数点で数を表す際に、正規化は必ずしも必要なもの(行わなければならないもの)なのでしょうか?    また浮動小数点の正規化のルールとして、  2進数か16進数に変換したとき  「指数部を調整して、仮数部の最上位けたを“0以外にする”」というルールがあるようなのですが、何故「指数部を調整して、仮数部の最上位けたを“0以外にする”」という処理が必要となるのでしょうか?

  • IEEE754浮動小数点規格

    14.625をIEEE754浮動小数点規格の単精度(float)の書式(-1)^s ×1.f×2^(e-127)に直す場合、この値をとりあえず2進数に直すのですが、 14.625=+1110.101となると書いてあったのですが、 14を二進数に変換すると1110になることはわかるのですが、625がなぜ、101になるのかわかりません。僕自身、単に625を計算したら、101110001になりました。どう625を2進数に変換したらよいですか。

  • 浮動小数点とIEEE754

    初めまして。 現在、浮動小数点について調べています。 #質問カテゴリ、間違っていたらすみません。 色々調べていると、こんなサイトを見つけました。 http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/fudo.htm 分かり易い解説だったんですが、疑問も湧いてきました。 サイトの内容は、0.375を浮動小数点に直すという内容なんですが 汎用型の時は『0.11 × 2の-1乗』 IEEE754の時は『1.1 × 2の-2乗』 で計算しています。 Q1) 汎用とIEEEの違いは『127』を足すだけだと思っていたのですが 『2の-n乗』の直し方も異なるのでしょうか。 もう一つ質問です。 整数入力をIEEE754に準拠したフォーマットで出力させるデジタル回路を作成しています。 出力形式は32bit or 64bitです。(単精度か倍精度) そこで悩んでいるのが入力のbit数とその内訳です。 入力bitは『符号・整数・小数』で形成されているかと思うのですが 符号以外のbit内訳が分かりません。 Q2) 単精度/倍精度、それぞれの入力範囲bitと、その内訳を教えて頂けないでしょうか。 (単精度:合計16bit ⇒ 符号1bit、整数7bit、小数8bit)みたいな感じでお願いします。 宜しくお願いします。 分かりにくい質問でしたらご指摘下さい。

  • 浮動小数点の正規化方法について

    基本情報処理技術者試験を20日に受けます。勉強不足で困っています。どなたか教えてください。 問題「数値を16ビットの浮動小数点表示法で表現する。10進数0.375を正規化せよ:ここでの正規化は仮数部の有効数字よりも上位の0がなくなるように指数部を調節する操作である。」  答え「0111111000000000」 最初の1ビットが仮数部の符号、次の4ビットが2のべき乗の指数部で負数は2の補数、残りの11ビットが仮数部の絶対値 となっています。 0.375を2進数に直すところまではわかったのですが、次の正規化がよくわかりません。よろしくお願いいたします。