跳转到内容

BlitzMax/模块/流/字节序流

来自维基教科书,开放的书籍,开放的世界

字节序流允许您交换流数据的字节顺序。

这对于读取或写入在多个平台上具有固定字节序的二进制流很有用。

字节序是指存储多字节值的顺序。例如,一个整数是四个字节长,但是每个字节应该以什么顺序存储?低字节优先还是高字节优先?

这个选择通常由 CPU 决定。例如,像奔腾这样的英特尔 CPU 将多字节值存储为“低字节优先”,这被称为 *小端序*。另一方面,PowerPC CPU 将多字节值存储为“高字节优先”,这被称为 *大端序*。

大多数时候,您不必担心字节序问题。只要使用相同的字节序来读取和写入数据,就不会有问题。但是,在读取或写入二进制文件时,需要考虑字节序问题。例如,在 PC(小端序)上写入一个二进制文件并在 Mac(大端序)上读回它,如果文件包含多字节值,可能会产生奇怪的结果。

字节序流通过修改读取或写入多字节值的流命令的行为来帮助解决这个问题。这些命令是:ReadShortReadIntReadLongReadFloatReadDoubleWriteShortWriteIntWriteLongWriteFloatWriteDouble

BigEndianStream

[编辑 | 编辑源代码]

函数 BigEndianStream:TStream( stream:TStream )

描述: BigEndianStream

返回: 大端序流

LittleEndianStream

[编辑 | 编辑源代码]

函数 LittleEndianStream:TStream( stream:TStream )

描述: LittleEndianStream

返回: 小端序流

华夏公益教科书