std.binary 包
功能介绍
binary 包提供了基础数据类型和二进制字节数组的不同端序转换接口,以及端序反转接口。
端序(英语:Endianness),又称字节顺序,又称尾序,在计算机科学领域中,指存储器中或在数字通信链路中,组成多字节的字的字节的排列顺序。
在几乎所有的机器上,多字节对象都被存储为连续的字节序列。
字节的排列方式有两个通用规则。例如,将一个多位数的低位放在较小的地址处,高位放在较大的地址处,则称小端序;反之则称大端序。在网络应用中,字节序是一个必须被考虑的因素,因为不同机器类型可能采用不同标准的字节序,所以均按照网络标准转化。
大端序
大端序(英:big-endian)或称大尾序。
-
数据以8位为单位:
地址增长方向:
...
→0x0A
→0x0B
→0x0C
→0x0D
→...
示例中,最高位字节是
0x0A
存储在最低的内存地址处。下一个字节0x0B
存在后面的地址处。正类似于十六进制字节从左到右的阅读顺序。 -
数据以16位为单位:
地址增长方向:
...
→0x0A0B
→0x0C0D
→...
最高的16位单元
0x0A0B
存储在低位。
小端序
小端序(英:little-endian)或称小尾序。
-
数据以8位为单位:
地址增长方向:
...
→0x0D
→0x0C
→0x0B
→0x0A
→...
最低位字节是
0x0D
存储在最低的内存地址处。后面字节依次存在后面的地址处。 -
数据以16位为单位:
地址增长方向:
...
→0x0C0D
→0x0A0B
→...
最低的16位单元
0x0C0D
存储在低位。 -
更改地址的增长方向:
地址增长方向:
...
←0x0A
←0x0B
←0x0C
←0x0D
←...
最低有效位(LSB)是
0x0D
存储在最低的内存地址处。后面字节依次存在后面的地址处。地址增长方向:
...
←0x0A0B
←0x0C0D
←...
最低的16位单元
0x0C0D
存储在低位。
API 列表
接口
接口名 | 功能 |
---|---|
BigEndianOrder<T> | 大端序字节序列转换接口 |
LittleEndianOrder<T> | 小端序字节序列转换接口 |
SwapEndianOrder<T> | 反转字节顺序接口 |