int float
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん
NGNGfloatで2.130440だそうです。なんでですか?
さっぱりわかりません。
博識の方、よろしくお願いします。
0002>1
NGNGhttp://www.hucc.hokudai.ac.jp/html_docs/common-tools/numerical_comp_guide/index.html
00031
NGNG初心者には理解できないことなのでしょうか?
0004>1
NGNGこのボードに来るのは少し早すぎた様な…
00051
NGNGどこらへんを読めば理解できますか?
申し訳ありませんが、ご教授願います。
0006AO
NGNGから始めたほうが言いような気がしますが。。。>1
unsigned intからの方がいいかな?この辺の理解が出来ればすぐだと思います。。。
0007>1
NGNG00081
NGNG0x40085921を10進に直すと1074288929になってしまいますよね。
どちらも同じ数値です。
なぜこれをfloat値に出来るのか、わかんないんです。
さっきからプログラミング言語Cの第2章を見てるのですが、今一つ。。
どの辺を参考にしたら良いでしょうか?
0009名無しさん
NGNGっつーか、実装依存じゃなかったっけ?
0010名無しさん
NGNGfloatはIEEEだったか?で決められている
符号部と指数部と仮数部で格納されているんじゃないでしょうか?
printfでキャストしないで%fにintを与えると可変個引数の宿命が
起こって、そのまま解釈してしまうんだったと思います。
つまり、intの並びを最初の一桁を符号部・・・と言った感じで。
違いました?詳しい人正しいレスプリーズ
0011名無しさん
NGNGそしたら、浮動小数点も分かるのでは?
00121
NGNGIEEE(なんと発音するのでしょう?)では、一番左のbit(31bit?)が符号ですよね。
しかし、3f800000が1.0、40000000が2.0になぜなるのか理解できません。
また、これを理解したとして、どのように変換すれば良いのでしょう?
みなさん、質問ばかりでごめんなさい。感謝してます。
よろしくお願いします。
0013>1
NGNGhttp://www.reitaku-u.ac.jp/infosci/excel/excel05.html
判らないとすればどこが判らない?
0014名無しさん
NGNG何度か読めば判るよ。
おいらは、FPU持ってないCPUだと対数表現なんて良く使うなあ。
掛算が足し算になって楽。加算もそう難しくない。
が、負数を表現する時は複素数(角度情報)が必要になる。
0015名無しさん
NGNG「あいとりぷりいー」と読みます。わたしの周りの人間は
見なそう呼んでいるのでたぶんあっています。
2のリンクはすばらしいですね。ブックマークに入れておきます。
>しかし、3f800000が1.0、40000000が2.0になぜなるのか理解できません。
単精度浮動小数点が符号、指数、仮数の組み合わせになっている
こと、仮数は23bitだが、その上にもう1ビット追加されて(隠し
ビット)実際は24bitであることをまず理解してください。
隠しビットは常に1であることを理解してください。
仮数部の23bitは小数点以下の値であることを理解してください。
指数部は、0が127(01111111)であることを理解してください。
すると、1の時は 1.0×2^0なので、仮数部は0、指数部は127、
符号は0なので
0_01111111_00000000000000000000000=0x3f800000
2の時は1.0×2^1なので、仮数部は0、指数部は128、符号は0なので
0_10000000_00000000000000000000000=0x40000000
となります。
これでどうでしょう。
001615
NGNG「あいとりぷるいー」です。ごめんなさい。
00171
NGNGメモリ上にはintもfloatも同じように格納されてるんですね。
だから、memcpyしてあげれば、intからfloat値に変換できるんですね。
IEEEはちょっと、私には敷居が高かったように思いますが、これから
勉強して、理解していきたいと思います。
みなさん、ご親切にありがとうございました。
0018ミザール
NGNG>だから、memcpyしてあげれば、intからfloat値に変換できるんですね。
それはかなりまずいです。
おおざっぱに書くと
(int型)=(float型の仮数部)<<(float型の指数部)
といった感じです。
指数部が負のときはシフトの向きが逆になります。
これで、ヒントになりませんか?
0019ミザール
NGNG実際にどれだけシフトするかは15番さんを参照してください。
■ このスレッドは過去ログ倉庫に格納されています