アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/05/20 09:59

答え合せです。



仮数部を見ると、先頭に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 には複数のフォーマットがあります(いわゆる単精度、倍精度等)
そのうちのどれか、も確認しておきましょう。
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!