- ベストアンサー
浮動小数点表現
2^{24}を32bit整数表現及び32bit(単精度)浮動小数点表現で表せ。 結果は16進数で示せ。 符号ビット:MSB 指数部n:7ビット 仮数部:24ビット という問題があるのですが、 解いてみたものの、答えもないのであっているのか分かりません。 以下の答えで合っているでしょうか? また、合っていなかったら、どのように解くのか教えていただけませんか? 整数表現 0100 0000H 浮動小数点 0100 1000 0100 0000 0000 0000 0000 0000
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>整数表現 0100 0000H 正しいです。最下位ビットが2の0乗なので,2^{24}は 右から25ビット目がオンです。 >浮動小数点 >符号ビット:MSB 指数部n:7ビット 仮数部:24ビット 上記の前提自体が現在もっとも広く採用されている標準規格IEEE754とは異なりますので,「指数部7ビットにはどんな形式で値が格納されているのか」「同様に,仮数部:24ビットの形式はどうか」というさらなる前提がないと解答できない問題だと思います。(この点をANo.3では補足しているわけです) IEEE754による「指数部:8ビット,仮数部:23ビット」「指数部の+127バイアス表現」「仮数部の隠れ1表現」を用いるなら,2^{24}は次のような2進数になります。 +-+--------+-----------------------+ |0|10010111|00000000000000000000000| +-+--------+-----------------------+ IEEE754については私の過去の回答を参照。 http://okwave.jp/qa3739494.html
その他の回答 (4)
- JaritenCat
- ベストアンサー率37% (122/322)
すいません。訂正です。 2^24 = 0.1h*16^7 ですので、47100000hですね。
お礼
訂正ありがとうございます!
- JaritenCat
- ベストアンサー率37% (122/322)
浮動小数点数の内部表現はいろいろな方法があります。 IBM方式(エクセス64)と呼ばれる方法であれば、質問者の考え方であっています。 --- エクセス64 --- 符号部は0を正、1を負とする 指数部は16を基数とし、実際の指数に64を足した値で表す 仮数部は1以下の2進小数とする
お礼
浮動小数点数といえば、JaritenCatさんが仰っているIBM方式だと思い込んでいましたが、 よく読んでみると問題文からの指定では違うものでした;; でも、この方式での解き方も大体が当たっているようでよかったです。 ありがとうございました!
- JaritenCat
- ベストアンサー率37% (122/322)
整数表現はあっていると思います。
補足
どのように解いたのかを説明しておくべきだと思い、 追記させていただきます。 2^24なので2進数24bit目を1にすればいいと思い、 0000 0001 0000 0000 0000 0000 0000 0000 B これを16進数に直し、 0 1 0 0 0 0 0 0" H (1) としました。 浮動小数点数は、 (1)式の0"の右に小数点があるので正規化し 0.0100 0000 * 16^8 とし、 MSB 指数部 仮数部 ↓ ↓ ↓ 0 | 100 1000 | 0100 0000 0000 0000 0000 0000 | としました。 16進数に直すと 4 8 4 0 0 0 0 0 H でいいのでしょうか・・・?
- Tasuke22
- ベストアンサー率33% (1799/5383)
残念ながらどちらもハズレです。 2の24乗、 整数表現ではつまり右から24ビット目がオンでしょう。 浮動少数点では単精度にもなっていません。 符号1ビット、指数7ビット、仮数24ビット、計32ビット です。128ビットになっていませんか? もしかして 2進表現ですか? 問題は16進数で表せとなっています。 浮動小数点の正確な表現は忘れてしまいましたね。 精度が単純な例では、多くの表現が可能ですね。 適当に表現して正規化かな?
補足
浮動小数点の答えを2進数のまま表記してしまいました。 すみません。 整数表現も間違ってますか・・・
お礼
問題文に詳しい指定がされているのを見逃していました。すみません。 私のノートに書いてあった方式と、問題文の方式は違うものでした。 jjon-comさんの仰っているIEEE754という方式でしたので、 過去の回答を参考にさせて頂きます。 答えまでお教え頂けたので、大変助かりました。 ありがとうございました!