std.binary 包

功能介绍

binary 包提供了基础数据类型和二进制字节数组的不同端序转换接口,以及端序反转接口。

端序(英语:Endianness),又称字节顺序,又称尾序,在计算机科学领域中,指存储器中或在数字通信链路中,组成多字节的字的字节的排列顺序。

在几乎所有的机器上,多字节对象都被存储为连续的字节序列。

字节的排列方式有两个通用规则。例如,将一个多位数的低位放在较小的地址处,高位放在较大的地址处,则称小端序;反之则称大端序。在网络应用中,字节序是一个必须被考虑的因素,因为不同机器类型可能采用不同标准的字节序,所以均按照网络标准转化。

大端序

大端序(英:big-endian)或称大尾序

  • 数据以8位为单位:

    地址增长方向:

    ...0x0A0x0B0x0C0x0D...

    示例中,最高位字节是0x0A 存储在最低的内存地址处。下一个字节0x0B存在后面的地址处。正类似于十六进制字节从左到右的阅读顺序。

  • 数据以16位为单位:

    地址增长方向:...0x0A0B0x0C0D...

    最高的16位单元0x0A0B存储在低位。

小端序

小端序(英:little-endian)或称小尾序

  • 数据以8位为单位:

    地址增长方向:

    ...0x0D0x0C0x0B0x0A...

    最低位字节是0x0D 存储在最低的内存地址处。后面字节依次存在后面的地址处。

  • 数据以16位为单位:

    地址增长方向:

    ...0x0C0D0x0A0B...

    最低的16位单元0x0C0D存储在低位。

  • 更改地址的增长方向:

    地址增长方向:

    ...0x0A0x0B0x0C0x0D...

    最低有效位(LSB)是0x0D 存储在最低的内存地址处。后面字节依次存在后面的地址处。

    地址增长方向:

    ...0x0A0B0x0C0D...

    最低的16位单元0x0C0D存储在低位。

API 列表

接口

接口名功能
BigEndianOrder<T>大端序字节序列转换接口
LittleEndianOrder<T>小端序字节序列转换接口
SwapEndianOrder<T>反转字节顺序接口