日常の戯言とかなんとか

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- : スポンサー広告 :
Pagetop

よくわからなくなてきた

さっきの計算を1桁見間違えてることに気付いた

それはとにかく
32ビット浮動小数点型で0.01を表現すると0 00000000 00000010100011110101110と言ったじゃないか
で、これを使って計算すると0 00011111 111111111111111000000000

こいつを10進に直すと63.9999694824218750
デバッグの浮動小数点型の表示は8桁までだからそれ以下は切り捨てて表示されて63.99996ということだと思う


ついでにfvarのバイナリを見たら0.01は0x3C23D70Aとなっていた
これを2進表記したら111100001000111101011100001010…え?
全然違うじゃねーかどうなってるんだ

で、80*80*0.01と0.01*80*80をそれぞれやってみた結果
80*80*0.01=0x42800000
0.01*80*80=0x427FFFFF

浮動小数点型って最上位ビットが符号判別用、次の8ビットが実数部、そこから最下位までの23ビットが小数点以下らしいから
42800000=0 10000101 00000000000000000000000
427FFFFF=0 10000100 11111111111111111111111
こういうこと?
ますますわからんなあ…
なんかわかりやすい浮動小数点型の解説ってどっかにないかな
スポンサーサイト
2013-03-16 : 雑記 : コメント : 2 : トラックバック : 0
Pagetop
コメントの投稿
非公開コメント

No title
bit節約のために、記録したい値を1.XXXXXという形に成形した上で、XXXXの部分だけ仮数部に格納しています
よって0.01の場合は、2^7(128)を乗算して1.28にしてから、0.28を仮数部に格納します
指数部は-127の下駄を履いてるので、127-7=120を記録します
符号はそのままで、正は0を格納します
これで0x3C23D70Aになります
2013-03-17 01:17 : drab URL : 編集
No title
あーなんとなく理解できました
指数表記なのか
2013-03-19 22:42 : @ひたち URL : 編集
Pagetop
« next  ホーム  prev »

プロフィール

@ひたち

Author:@ひたち
「@」を忘れるべからず
読みは普通に「ひたち」でいいんじゃないの

検索フォーム

アクセスカウンター

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。