• ベストアンサー

情報科学について!進数変換の問題です。

(0.01)10を全体が2バイトで基数は8、仮数部は12bits、指数部は3bitsでかさあげ表現の浮動小数点表示を用いて2進数表示すると( )2となる。 という問題で答えが0010101000111101なのですがどうしてそうなるのかわかりませ。 詳しく解説してもらえないでしょうか? よろしくお願いします! 

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

  • ベストアンサー
  • info22_
  • ベストアンサー率67% (2650/3922)
回答No.2

>(0.01)10を全体が2バイトで基数は8、仮数部は12bits、指数部は3bitsでかさあげ表現の浮動小数点表示を用いて2進数表示すると( )2となる。 2バイト(16ビット)の構成は 「全体の符号1ビット(正0/負1)+指数部3ビット(基数8)+仮数部12ビット」 のようです。 >答えが0010101000111101なのですがどうしてそうなるのかわかりませ。 >詳しく解説してもらえないでしょうか? 上の構成では 先頭の1ビット目=0で正の数(+) 2~4ビット目の3ビット=指数部(010)2(かさ上げ表現:エクセス4コード)  ⇒2-4=-2⇒指数部:8^(-2)=1/64 5~16ビット目の12ビット(仮数部)=(0.101000111101)2=0.639892578125 となるので 不動小数点数を10進数に直すと +0.639892578125*(1/64)=0.009998321533203125≒0.01 (二進化するとき2進12ビットを超える桁は切り捨てる(2進化によるビット落ち)ので元の数値との誤差がでます。) と確かに確認できます。 実際に(0.01)10を「符号ビット+指数部が基数8の3ビットのエクセス4方式、仮数部12ビット」で浮動小数点表示に変換したい場合は次のように求めます。 まず、(0.01)10が正の数なので符号ビット=0 (0.01)10から指数部と仮数部を求める 絶対値が1未満の数値の場合、8倍することを繰り返して行って (0.5)以上、1未満になるような8のべき乗数nを求める。  (0.01)10*8=(0.08)10(n=1)  (0.08)10*8=(0.64)10(n=2) …これでOK  仮数部は(0.64)10  指数部は8^(-n)=8^(-2) 1未満の仮数部は、小数以下を2倍する事を繰り返し整数部への繰上げを並べて2進数に変換する。  (0.64)10 *2=(1.28)10→ 整数部1→ (0.1)2  (0.28)10 *2=(0.56)10→ 整数部0→ (0.10)2 (0.56)10 *2=(1.12)10→ 整数部1→ (0.101)2  (0.12)10 *2=(0.24)10→ 整数部0→ (0.1010)^2  (0.24)10 *2=(0.48)10→ 整数部0→ (0.10100)^2  (0.48)10 *2=(0.96)10→ 整数部0→ (0.101000)^2  (0.96)10 *2=(1.92)10→ 整数部1→ (0.1010001)2  ……  ← 2進数の小数以下のビット数(桁数)が12になるまで繰り返す。  …  → (0.101000111101)2 この小数以下の「101000111101」が浮動小数点表示の5~16ビット目になります。 次に指数部の8^(-2)は 基数が8、べき乗指数(-2)は、(かさ上げ表現:エクセス4コード)なので4=(100)2だけかさ上げして(加えて) (-2)+4=2=(010)2 この「010」が「かさ上げ表現:エクセス4コード」による指数部として浮動小数点表示の 指数部の2~4ビット目になります。 これで1~16ビット目まで全部決まりましたね。 1ビット目:0 2~4ビット目:010 5~15ビット目:101000111101 これをつなげれば浮動小数点表示になります。 お分かりになりましたか?   ^2)*8^(-2)

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

その他の回答 (2)

  • info22_
  • ベストアンサー率67% (2650/3922)
回答No.3

#2です。 A#2の最後の行 >^2)*8^(-2) は消し忘れのごみです。削除願います。 失礼しました!

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

うん, 多分誰にもわからないと思うよ. 「かさあげ表現」でどれだけ「嵩上げ」されてるかわからん.

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

関連するQ&A

  • 浮動小数点形式の問題

    数値を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 はどうやって導くのか教えてください。 お願いいたします

  • 浮動小数点数

    再質問で畏れ入ります。 数値を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 はどうやって導くのか教えてください。 お願いいたします

  • 10進数を2進数にする問題について教えてください

    10進数を2進数にする問題について 10進数を2進数に変換について 10進数を2進数に変換する問題なのですが、 まったくもって理解ができません、教えて頂ければ幸いです S(符号)は1ビットで仮数の符号を表す E(指数部)は4ビットで指数を表し負数は2の補数で表現 M(仮数部)は11ビットで仮数の絶対値を表す 基数は2とする 仮数の0,2進数の少数以下第一位が1になるように、正規化された形で表す 小数点はEとMの位置にする 0の表現はー0と+0の二通りがあり特別に指数部と仮数部をすべて0にする 問.10進数の5.25を2進数で表示しなさい 問.10進数の0.125を2進数で表示しなさい 答えと解き方を教えて頂ければ幸いです

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

    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未満になるよう指数部を増減する操作である

  • 10進数を2進数に

    10進数を2進数に変換する問題なのですが、 まったくもって理解ができません、教えて頂ければ幸いです S(符号)は1ビットで仮数の符号を表す E(指数部)は4ビットで指数を表し負数は2の補数で表現 M(仮数部)は11ビットで仮数の絶対値を表す 基数は2とする 仮数の0,2進数の少数以下第一位が1になるように、正規化された形で表す 小数点はEとMの位置にする 0の表現はー0と+0の二通りがあり特別に指数部と仮数部をすべて0にする 問.10進数の-5.25を2進数で表示しなさい 問.10進数の-0.125を2進数で表示しなさい 答えと解き方を教えて頂ければ幸いです

  • この問題の解法が分かりません。

    【問題】 4バイト(最上位ビットから1ビットの符号ビット、7ビットの指数部、24ビットの仮数部からなる)の数値で表現する浮動小数点を考える 。この形式で表現される浮動小数点数の絶対値は、 16^n * (f1 / 16 + f2 / 16^2 + f3 / 16^3 + f4 / 16^4 + f5 / 16^5 + f3 / 16^3) となる。ただし、nの負数は2の補数で表すものとする。また、fi(i=1,2,3...6)は、0から15までの数値である。例えば、10進数の16.5は 16.5=16^2*(1/16+0/16^2+8/16^3)…(1) であるから、浮動小数点形式では16進数表示で02108000・・・(2) となり、 -16.5は82108000・・・(3) となる。 分からないのは、問題文中の「例えば~」以降で(1)、(2)、(3)がどうしてそのように表されるのか理解できません。分かる方詳細に教えてください。

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

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

  • 浮動小数点表現

    2^{24}を32bit整数表現及び32bit(単精度)浮動小数点表現で表せ。 結果は16進数で示せ。 符号ビット:MSB 指数部n:7ビット 仮数部:24ビット という問題があるのですが、 解いてみたものの、答えもないのであっているのか分かりません。 以下の答えで合っているでしょうか? また、合っていなかったら、どのように解くのか教えていただけませんか? 整数表現 0100 0000H 浮動小数点 0100 1000 0100 0000 0000 0000 0000 0000

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

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

  • 浮動小数点について

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