Big Endian和Little Endian Byte命令有什么区别?
这两者似乎都与Unicode和UTF16有关。我们到底在哪里使用它?
答案 0 :(得分:111)
Big-Endian(BE)/ Little-Endian(LE)是组织多字节单词的两种方法。例如,当使用两个字节来表示UTF-16中的字符时,有两种方法可以将字符0x1234
表示为字节串(0x00-0xFF):
Byte Index: 0 1
---------------------
Big-Endian: 12 34
Little-Endian: 34 12
为了确定文本是使用UTF-16BE还是UTF-16LE,规范建议在字符串前加上字节顺序标记(BOM),表示字符U + FEFF。因此,如果UTF-16编码文本文件的前两个字节是FE
,FF
,则编码为UTF-16BE。对于FF
,FE
,它是UTF-16LE。
一个直观的例子:不同编码中的“示例”一词(带BOM的UTF-16):
Byte Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
------------------------------------------------------------
ASCII: 45 78 61 6d 70 6c 65
UTF-16BE: FE FF 00 45 00 78 00 61 00 6d 00 70 00 6c 00 65
UTF-16LE: FF FE 45 00 78 00 61 00 6d 00 70 00 6c 00 65 00
如需了解更多信息,请阅读Endianness和/或UTF-16的维基百科页面。
答案 1 :(得分:28)
Ferdinand的回答(和其他人)是正确的,但不完整。
Big Endian(BE)/ Little Endian(LE)与UTF-16或UTF-32无关。 它们在Unicode之前存在,并影响数字字节如何存储在计算机的内存中。它们取决于处理器。
如果您的数字的值为0x12345678
,那么在内存中它将表示为12 34 56 78
(BE)或78 56 34 12
(LE)。
UTF-16和UTF-32恰好分别在2个4字节上表示,因此字节的顺序遵循该平台上任何数字所遵循的顺序。
答案 2 :(得分:7)
UTF-16将Unicode编码为16位值。大多数现代文件系统都以8位字节运行。因此,例如,要将UTF-16编码文件保存到磁盘,必须确定16位值的哪一部分在第一个字节中,哪个部分在第二个字节中。
Wikipedia有更完整的解释。
答案 3 :(得分:4)
little-endian:adj。
描述一种计算机体系结构,其中在给定的16位或32位字内,较低地址处的字节具有较低的重要性(该字存储为“小端优先”)。 PDP-11和VAX系列计算机和英特尔微处理器以及许多通信和网络硬件都是小端的。该术语有时用于描述除字节以外的单位的排序;最常见的是,一个字节内的位。
big-endian:adj。
[常见;来自斯威夫特的格列佛游记,通过着名论文“圣战”和丹尼·科恩的和平辩护,USC / ISI IEN 137,1980年4月1日]
描述一种计算机体系结构,其中,在给定的多字节数字表示中,最高有效字节具有最低地址(该字存储为“大端优先”)。大多数处理器,包括IBM 370系列,PDP-10,Motorola微处理器系列以及大多数RISC设计都是大端的。 Big-endian字节顺序有时也称为网络顺序。
答案 4 :(得分:2)
Big-endian和little-endian是描述一系列字节存储在计算机内存中的顺序的术语。
在大端计算机中,十六进制数字4F52
所需的两个字节将存储为4F52
存储(if 4F is stored at storage address 1000, for example, 52 will be at address 1001).
在小端系统中,它将存储为524F (52 at address 1000, 4F at 1001).
答案 5 :(得分:1)
Byte endianness(大或小),因为对于使用多个字节的字符代码,可以选择是否读/写{{3第一个或最后一个。 Unicode / UTF-16,因为它们是可变长度编码(即每个字符可以用一个或几个字节表示),需要指定它。 (注意,UTF-8“字”总是长度为8位/一个字节[虽然字符可以是多个点],因此字节顺序没有问题。)如果字节流的编码器表示Unicode文本和解码器不同意使用哪种约定,可以解释错误的字符代码。出于这个原因,要么预先知道字节序的约定,要么更常见的是most significant byte通常在任何Unicode文本文件/流的开头指定,以指示正在使用大或小的字节序。