関数型プログラミング言語Haskell Part9 at TECH
[2ch|▼Menu]
800:デフォルトの名無しさん
08/10/02 01:06:55
>>799
問題ある
>>797は、バイナリモードで開いた上でgetContentsすればいい、という意味で言った

>>798
確かにそうだな
ちゃんとテストしてないけど一応こんなんでいけるみたいだ

import Data.Bits
import Data.Word

w32ToFloat :: Word32 -> Float
w32ToFloat w
  | ep == 255 && sf /= 0 = 0 / 0
  | sf == 255 = sign / 0
  | sf == 0 && ep == 0 = sign * 0
  | otherwise = sign * encodeFloat r e
  where
    sn = shiftR w 31
    ep = shiftR w 23 .&. 0xff
    sf = w .&. 0x7fffff

    sign = if sn == 1 then -1 else 1
    e = fromIntegral ep - 127 - 23
    r = fromIntegral sf + 0x800000



次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5212日前に更新/225 KB
担当:undef