IEE 754倍精度浮動小数をバイト列にエンコードしたい。Cとかなら簡単に変換できるのだけども、OCamlでやる方法が分らない。 union { long n[2]; double f; } x; x.f = 42.0; // x.n[0]とx.n[1]がエンコードされたやつ ちゃんと仮数部と指数部を抜きだして、ごにょごにょすればいけるだろうけど、Cで数行のコードをあんまり書きたくないなぁ、と思って。Cのコードをリンクするのも手だけれども、やりかたがよくわからなかった。 追記 id:llaさんに教えてもらいました。 open Obj let of_float (n:float) = let n = repr n in (obj (field n 0):int),(obj (field n 1):int) たしかに非常にそれっぽいんですが、ちょっと違う気がします。 たとえば、0.75は0x3