浮動小数点の問題と解説

このQ&Aのポイント
  • 浮動小数点の問題で、10進数+0.375を浮動小数点で記憶させた場合のダンプリストを解説します。
  • 0.375は16進数で(1)に、-1は16進数で(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未満になるよう指数部を増減する操作である

  • 科学
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

(1) >2進数で0.1以上1.0未満になるよう ってことは >10進数で0.5以上1.0未満になるよう ってことだから 0.375 = 3/8 = 0.75 * 2^(-1)と書くと ビット番号は、元の数値が正であることから0 …★ >ビット番号1-5:指数部.負の値を2の補数で表す だってんだから、-1を2の補数で表すと 11111 …★ #以下の例だと8ビットだから、255になっているけどね http://www7a.biglobe.ne.jp/~thor/pcnyumon/nyu032.htm >ビット番号6-15:仮数部.ビット番号6を小数点第1位とする仮数部の小数点以下の絶対値が、正規化された2進数で入っている あとは0.75を2進数で表すと 0.375 = (1/2) * 1 + (1/2)^2 * 1 だから 0.1100000000 で 1100000000 …★ ★の部分を連結して 0 11111 1100000000 16進数で表記するために切れ目を変えて 0111 1111 0000 0000 あとはそれぞれを該当する文字に変えて 7 F 0 0 よって 7F00 ============================ (2) >ビット番号0:符号部.仮数部の符号が入っている.0なら正,1なら負 元の数は負なので1 …★ で後は1.0だと思って対処する。 >10進数で0.5以上1.0未満になるよう を満たすように、 0.5 * 2^1 と書くと、 >ビット番号1-5:指数部.負の値を2の補数で表す は素直に00001…★ 残りは 0.5 = (1/2)^1 * 1 で 1000000000 …★ ★の部分を全部繋げて 1000011000000000 区切り方を変えて 1000 0110 0000 0000 あとはそれぞれを該当する文字に変えて 8 6 0 0 よって 8600

RITSUNEKO
質問者

お礼

詳しい説明をありがとうございます

関連するQ&A

  • 浮動小数点数について

    現在情報処理の勉強をしているのですが、下記の問題が解けません。。 もし、わかりすく教えてもらえれば,,,と思い、、、 ↓ 数値を16ビットの浮動小数点数で表現する。10進数0.375を正規化した表現を、2進数であらわすとどうなるか求めよ。ここでの正規化は仮数部の有効数字よりも上位の0がなくなるように指数部を調整する操作である。 仮数部の符号(正は0 負は1)(1ビット) 奇数を2とする指数部で、負数は2の補数(4ビット) 仮数の絶対値(11ビット) で、 答えは 0111 1110 0000 0000 なのですが、この指数部がどうしてもわかりません。 初心者なので、、わかりやすく教えてくだされば、、うれしいな。と思うのです。

  • 32ビットの浮動小数点について

    32ビットの浮動小数点(符号1ビット指数8ビット仮数23ビット)で非正規表現をもとめるには例えば(符号0指数0仮数1.01101)はどういう計算をすれば良いのでしょうか?

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

    数値を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にも符号ビットがないと出来ないように思い質問しました。回答宜しくお願い致します。

  • 数値を浮動小数点表示

    基本情報技術者の勉強を始めたのですが、 浮動小数点の問題で分からないものがありました。 問題は、 ・基数は2。 ・数値を24ビットで表現。 ・左から1ビットは仮数の符号を表す。 (0なら正、1なら負) ・左から数えて2ビット目から8ビット目までで 2のべき乗を表す。(負数は2の補数で表す) ・右16ビットは仮数の絶対値を表す。 (あと、左から数えて8ビット目と9ビット目の間が 小数点位置、だという表示があります。) 以上のように24ビットの浮動小数点表示で、最大数を 16進数で表したものはどれか? この問題の答えは3FFFFFとなっているのですが、 どうしてこのような解答になるのでしょうか? ヒントには「指数部は負数を2の補数で表すので、左から 2ビット目も0でなければならない」とあるのですが、 わけわからない状態です。 簡単で結構ですので、教えていただけないでしょうか。 よろしくお願いします。

  • 浮動小数点形式の問題

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

  • IEEE754 浮動小数点の問題

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

  • 浮動小数点について

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

  • 浮動小数点数

    再質問で畏れ入ります。 数値を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が提唱する32ビット浮動小数点の表記形式を用いて、十進数の503.625を表記すると、どのようになるか。#IEEEの32it浮動小数点表記方式#符号部:1bit(0:正、1:負)指数部:8bit(2の乗数部分に127を加える ex.8乗→8+127=135=二進数で10000111)仮数部:23bit(仮数を二進小数で1.xxxxxとなるよう調整したxxxxxの部分)符号部、指数部、仮数部の順で左から詰め、仮数部の残りは0で埋める。それを16進数で表す。

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

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