(defparameter *test1* #b111111111111111111111111/100000000000000000000000 "A rational exactly equal to 1.99999988079071044921875 and representable within IEEE 754's single-precision floating-point representation. Its IEEE 754 encoding is #*00111111111111111111111111111111.") (defun integer-to-bit-vector (int len) (let ((vec (make-array len :element-type 'bit))) (loop :for i :from 0 :below len :do (setf (aref vec (- len 1 i)) (ldb (byte 1 i) int))) vec)) (integer-to-bit-vector (ieee-floats:encode-float32 (float *test1*)) 32) ;; => #*00111111111111111111111111111111 (format nil "~,50f" (float *test1*)) ;; => "1.99999990000000000000000000000000000000000000000000"