• ベストアンサー

コンピュータ関係の問題

10進数の-65.59375をIEEE754フォーマットで示せ という問題を解いてみたのですが、正直自信がありません。自分の答えは 1 01111110 01100000000000000000000 となりました。合ってますでしょうか?間違っていたら手順をいれて教えて欲しいです。

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

  • ベストアンサー
  • info222_
  • ベストアンサー率61% (1053/1707)
回答No.3

>1 01111110 01100000000000000000000 >となりました。合ってますでしょうか?間違っていたら手順をいれて >教えて欲しいです。 間違っている。 IEEE 754 単精度(32ビット単精度)での表現を求めることにします。 やり方は参考URLを確認しておいてください。 [解答] 符号と絶対値を分ける 符号:マイナスなので符号ビットはs=1 絶対値:65.59375 これを2進数に直すと 65=1000001.(2) 0.59375=0.10011(2) 65.59375=1000001.10011(2)=1.0000010011(2)×2^(6) 仮数部:先頭の1は取り除くから⇒ 0000010011000…000(23ビット) 指数部:6+127=133=10000101(8ビット) 以上から IEEE 754 単精度の表現は [1]+[10000101]+[0000010 01100000 00000000] ⇒11000010100000100110000000000000 …(答)

参考URL:
http://ja.wikipedia.org/wiki/IEEE_754
tokkurisann
質問者

お礼

ありがとうございます。 自分は0.59375はやったのてすが、なぜか65の方を計算するのを忘れていました。

その他の回答 (2)

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

答え合せです。 仮数部を見ると、先頭に1を補った 1.011(2) です。これを2のべき乗倍、または2のべき乗で割ったら、65.59375になるはずです。 (あるいは、最低精度程度の誤差のある近似値) ところが 2^4(左に4回シフト) : 10110(2) = 38.0(10) 2^5(左に5回シフト) : 101100(2) = 76.0(10) と65.59375 になりません。 まずは、絶対値である 65.59375を2進数に変換しましょう。 その後、指数部を調整して、 1.xxxx * 2^n の形に正規化します。 最後に、 正負符号、 .xxxx、 n を適切に符号化します。 既に指摘もありますが。 IEEE754 には複数のフォーマットがあります(いわゆる単精度、倍精度等) そのうちのどれか、も確認しておきましょう。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

一口に「IEEE754フォーマット」といっても, そのうちのどれかを決めないことには考えようもない.

関連するQ&A