CommonLisp初心者スレ
■ このスレッドは過去ログ倉庫に格納されています
0453デフォルトの名無しさん
NGNG16 進文字列を倍精度浮動小数点数にしたりするような2通りの関数を作りたいと思ってるのですが、
Lisp でどのように作っていいのかがわかりません。
ヒントだけでも教えていただけないでしょうか?
(convert-hex-double #x40091eb851eb851f)
=> 3.14d0 (little endian で)
(convert-double-hex 3.14d0)
=> #x40091eb851eb851f (little endian で)
------------
同じことを C では出来ているのですが、どうしても Lisp で実装したいのです。
ちなみに、C で little endian での convert-hex-double は以下のように実装できます。
1.8バイト分の unsigned char 配列を用意。
2.16 文字ある 16 進表記文字列を後ろから 2 文字づつとっていって、
その2文字を 16 進数と見立てて unsigned int に変換。
そのまま1.での unsigned char 配列に、前から詰めていく。
3.その配列を (double) にてキャスト
■ このスレッドは過去ログ倉庫に格納されています