特指以字节(Byte)
为基本单位的字节顺序:
如何在内存中对这些字节进行排序分为了大端法(Big-endian)
和小端法(Little-endian)
大前提:
地址分为低位地址高位地址(低址高址)、数据位分为低位数据高位数据(低位高位)
计算机内存中数据存放顺序都是从 低地址(地址数小) →↑ 高地址(地址数大) 存放
数据的读是 高位 ← 低位
所以不同的是先取低位字节的数据(尾巴)放低地址(小端,内存就是如此)还是先取高位字节的数据放低地址(大端)
也就是说:
数字0x12 34 56 78
小端(低尾端):先存低位数字节;(内存)
低地址 -----------------> 高地址
0x78 | 0x56 | 0x34 | 0x12
大端(高尾端):先存高位数字节;(符合人的读法,先读高位数)
低地址 ------------------> 高地址
0x12 | 0x34 | 0x56 | 0x78
Unicode 规范定义,每一个文件的最前面分别加入一个表示编码顺序的字符,这个字符的名字叫做"零宽度非换行空格"(zero width no-break space),用FEFF表示。这正好是两个字节,而且FF比FE大1。
如果一个文本文件的头两个字节是FE FF(先取低位),就表示该文件采用大端方式;如果头两个字节是FF FE(先取高位),就表示该文件采用小端方式。