ちょっとバイナリストリームとたわむれる必要がありまして、
数値を指定したbyteで入出力する必要がありました
(defun read-bytes (in number-of-bytes &key (big-endian nil)) (if big-endian (loop for idx downfrom (1- number-of-bytes) downto 0 sum (* (read-byte in) (expt 2 (* 8 idx)))) (loop for idx from 0 to (1- number-of-bytes) sum (* (read-byte in) (expt 2 (* 8 idx)))))) (defun write-bytes (out val number-of-bytes &key (big-endian nil)) (if big-endian (loop for idx downfrom (1- number-of-bytes) downto 0 do (write-byte (ldb (byte 8 (* idx 8)) val) out)) (loop for idx from 0 to (1- number-of-bytes) do (write-byte (ldb (byte 8 (* idx 8)) val) out))))
とりあえずbit-endianとlittle-endianには対応してあるつもりです。