web*_*nia 62 unicode utf-16 endianness
Big Endian和Little Endian Byte命令有什么区别?
这两者似乎都与Unicode和UTF16有关.我们到底在哪里使用它?
Fer*_*yer 114
Big-Endian(BE)/ Little-Endian(LE)是组织多字节单词的两种方法.例如,当使用两个字节来表示UTF-16中的字符时,有两种方法可以将字符表示0x1234为字节串(0x00-0xFF):
Byte Index: 0 1
---------------------
Big-Endian: 12 34
Little-Endian: 34 12
Run Code Online (Sandbox Code Playgroud)
为了确定文本是使用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
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请阅读Endianness和/或UTF-16的Wikipedia页面.
Mih*_*ita 31
费迪南德的答案(和其他人)是正确的,但不完整.
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字节上表示,因此字节的顺序遵循该平台上任何数字所遵循的顺序.
小尾数法:adj.
\n\n描述一种计算机体系结构,其中在给定的 16 位或 32 位字中,较低地址的字节具有较低的重要性(该字存储为 \xe2\x80\x98little-end-first\xe2\x80\x99)。PDP-11 和 VAX 系列计算机和 Intel 微处理器以及许多通信和网络硬件都是小端字节序。该术语有时用于描述字节以外的单位的排序;最常见的是一个字节内的位。
\n\nbig-endian:形容词。
\n\n[常见的; 摘自《斯威夫特的格列佛游记》,通过丹尼·科恩着名的论文《论圣战与和平诉求》,USC/ISI IEN 137,日期为 1980 年 4 月 1 日]
\n\n描述一种计算机体系结构,其中在给定的多字节数字表示形式中,最高有效字节具有最低地址(该字存储为 \xe2\x80\x98big-end-first\xe2\x80\x99)。大多数处理器,包括 IBM 370 系列、PDP-10、Motorola 微处理器系列以及大多数各种 RISC 设计都是大端字节序。大端字节顺序有时也称为网络顺序。
\n\n---来自行话文件:http://catb.org/~esr/jargon/html/index.html
\n