XSLT存档  

不及格的程序员-八神

 查看分类:  ASP.NET XML/XSLT JavaScripT   我的MSN空间Blog

一、什么是字节序

字节序(Byte Order)是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。其有两种存储方式:大端(Big-endian)小端(Little-endian)

二、端的起源

“endian” 这个词出自 Jonathan Swift 在1726 年写的讽刺小说《格列佛游记》(Gulliver’s Travels)。小人国的内战源于吃水煮鸡蛋时究竟是从大头(Big-endian)敲开还是从小头(Little-endian)敲开,由此曾发生过6次叛乱,其中一个皇帝送了命,另一个丢了王位。

三、如何理解

这里先来定义两个概念:

  • MSB(Most Significant Bit/Byte):最重要的位或字节。它通常用来表明在一个 bit 序列(如一个 byte 是8个 bit 组成的一个序列)或一个 byte 序列(如一个汉字是两个 byte 组成的一个序列)中对整个序列取值影响最大的那个 bit/byte。(即最高位字节)
  • LSB(Little Significant Bit/Byte):最不重要的位或字节。它通常用来表明在一个 bit 序列(如一个 byte 是8个 bit 组成的一个序列)或一个 byte 序列(如一个汉字是两个 byte 组成的一个序列)中对整个序列取值影响最小的那个 bit/byte。(即最低位字节)

比如一个十六进制的整数 0x12345678 里面:

0x120x340x560x78

0x12 就是 MSB,0x78 就是 LSB。而对于 0x78 这个字节而言,它的二进制是 01111000,那么最左边那个 0 就是 MSB,最右边那个 0 就是 LSB。

大端小端 区别:

  • 大端(Big-endian):规定 MSB 在存储时放在低地址,在传输时放在流的开始;LSB 在存储时放在高地址,在传输时放在流的末尾。(即高位字节在前,低位字节在后。)
  • 小端(Little-endian):规定 MSB 在存储时放在高地址,在传输时放在流的末尾;LSB 在存储时放在低地址,在传输时放在流的开始。(即低位字节在前,高位字节在后。)

例如: 0x12345678 在不同机器中的存储是不同的,如下所示。

 大端(Big-endian)小端(Little-endian)
0 字节 0x12 0x78
1 字节 0x34 0x56
2 字节 0x56 0x34
3 字节 0x78 0x12

 


 

 

 

 

 

posted on 2023-01-26 22:37  不及格的程序员-八神  阅读(18)  评论(0编辑  收藏  举报