>>453
とりあえず片方だけ。

(defun convert-hex-double (integer)
(let ((sign (logand (ash integer -63) 1))
(exponent (- (logand (ash integer -52) #xffff) 1023))
(mantissa (logior #x10000000000000 (logand integer #xfffffffffffff))))
(* (if (zerop sign) mantissa (- mantissa)) (float (expt 2 (- exponent 52)) 0d0))))