- ベストアンサー
コンピュータ関係の問題
10進数の-65.59375をIEEE754フォーマットで示せ という問題を解いてみたのですが、正直自信がありません。自分の答えは 1 01111110 01100000000000000000000 となりました。合ってますでしょうか?間違っていたら手順をいれて教えて欲しいです。
- みんなの回答 (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 …(答)
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
答え合せです。 仮数部を見ると、先頭に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)
一口に「IEEE754フォーマット」といっても, そのうちのどれかを決めないことには考えようもない.
お礼
ありがとうございます。 自分は0.59375はやったのてすが、なぜか65の方を計算するのを忘れていました。