プロが教えるわが家の防犯対策術!

real 4byte
00 00 26 42

41.5
にするためには,どのような計算方法をしているのか教えてください.

binary editorを用いた場合,下記のようになってしまいます...
real 4byte
00 00 26 42

1109786624

よろしくお願い致します.

A 回答 (3件)

ふつ~に IEEE754 の binary32形式 (リトルエンディアン) みたいだね.

    • good
    • 0
この回答へのお礼

みなさんありがとうございました!
実際に,計算してみると41.5になりました.

お礼日時:2016/10/20 10:07

浮動小数表現は以下の通り


・先頭1ビット:仮数部の符号、オンならマイナス
・続く8ビット:指数部(バイアス127を加えた表現)
指数部のビットが全ゼロの場合は、これ以上小さな数を表現できないという意味になる。
・続く23ビト:仮数部。1.ABCDEでABCDEを16進表現

下図を参考に16進の00 00 26 42を当てはめる(但し16進で表現)と
指数部が0だから限りなく小さい意味する、それを-127としても
16⁻¹²⁷ × 1.004C84 = 41.5には到底ならない

何か質問に記入ミスか勘違いかが有ると思う。
「real(4) 16進数→10進数 小数」の回答画像2
    • good
    • 0

状況がよくわからないので、



> どのような計算方法をしているのか教えてください
意味がよくわかりませんが、
数値 41.5 をIEEE754の単精度浮動小数点で表したものが16進数表記(バイナリ)で 00 00 26 42 です。 (C言語などの)高級言語で float 型変数へ 41.5 を代入して、その変数が格納されているメモリの場所から4バイトが 00 00 26 42 と言えます。
これをIEEE754の単精度浮動小数点、2進数で示すと、
 01000010001001100000000000000000
です。

> binary editorを用いた場合,下記のようになってしまいます
この意味もよくらかりませんが、(バイナリエディタで4バイトを1つの数値として表示した場合?)
上記の4バイト(00 00 26 42)からなるメモリを int 型変数として考えると、その値は 1109786624 です。

↓参考までにどうぞ。
https://ja.wikipedia.org/wiki/IEEE_754
    • good
    • 0

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