如果我理解正确的话,在有许多不同的架构对字节大小有不同看法的时候,常见的lisp是标准化的。为此,常见的lisp允许我们定义一个字节的大小。
例如,我可以像这样创建一个8位字节的数组:
(make-array 10 :element-type '(unsigned-byte 8))
这很有效,到目前为止,这些知识已经足够我所做的一切。
今天虽然我已经开始使用二进制流,但read-byte
功能让我感到困惑。
CLHS
表示read-byte reads and returns one byte from stream.
但这是什么字节?默认平台字节?我可以用任何方式指定吗?
谢谢大家
答案 0 :(得分:1)
无论您读取的流的元素类型是什么,都表示。
答案 1 :(得分:1)
例如OPEN
有一个:element-type
参数,它是实现定义的。您的Common Lisp实现有更多关于它的信息。正如评论中所述,(unsigned-byte 8)
描述了一个流八位字节,恰好是大多数(全部?)实现中的字节大小。谢谢@Xach。
另请参阅flexi-streams,其make-external-format
和binary-types用于自定义二进制编码。