MSB:(Most Significant Bit/Byte),意思为最重要的位或最重要的字节。用来表明在一个bit序列或者byte序列中对整个序列取值影响最大的那个bit/byte。
LSB:(Least Significant Bit/Byte),意思为最不重要的位或最不重要的字节。用来表明在一个bit序列或者byte序列中对整个序列取值影响最小的那个bit/byte。
0x12 0x34 0x56 0x78
举个例子,比如一个十六进制的整数0x12345678中,0x12就是MSB,0x78就LSB.
大端模式:规定MSB在存储时候放在低地址,在传输时MSB放在流的开始;LSB在存储时放在高地址,在传输时候LSB放在流的末尾。
小端模式:规定MSB在存储时放在高地址,在传输时MSB放在流的末尾;LSB在存储时放在低地址,在传输时候LSB放在流的开始。
总结来说,大端将高位存低地址,低位存高地址;小端将高位存高地址,低位存低地址。传输的时候,都是从低地址开始传输。
小端应用:Intel的x86系列兼容机
大端应用:Mac机器,一般指PoweePC系列处理器。TCP/IP网络以及Java虚拟机的字节序都是大端。
举个实例才能看的更明白:我们看下0x12 34 56 78 在x86计算机中是如何存储的。
数据 | 78 | 56 | 34 | 12 |
地址 | 0x000000E5B7B7E44C | 0x000000E5B7B7E44D | 0x000000E5B7B7E44E | 0x000000E5B7B7E44F |
0x12345678 中最重要的位就是12在计算机中存放的地址是0x000000E5B7B7E44F 这个地址在4个地址中是最高的。