计算机中,大小端(Endianness)是一个用于说明字节序(byte order)的术语。字节序指计算机在内存中使用多字节类型(如int、float)时,保存字节的顺序。
小端法(Little Endian)是指低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。即数值的低位保存在内存的低地址中,而数值的高位保存在内存的高地址中。
比如,一个占4个字节的十六进制数0x12345678,采用小端法存储时,存储顺序为78 56 34 12。
大端法(Big Endian)是指高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。即数值的高位保存在内存的低地址中,而数值的低位保存在内存的高地址中。
比如,一个占4个字节的十六进制数0x12345678,采用大端法存储时,存储顺序为12 34 56 78。
大小端的应用场景主要涉及不同体系结构的计算机之间通信和数据存储的互相转换。比如,当网络中有一个大端的计算机和一个小端的计算机互相通信时,必须要考虑字节序的问题,否则可能会出现通信故障或数据错乱的问题。
此外,在某些特定场合,也需要进行字节序的转换,比如显卡渲染图像时,需要将图像数据转换为GPU可读的字节序。