little-endian and big-endian
2010-06-29 10:43
393 查看
Some computer architectures number bytes in a binary word from left to right, which is referred to as
big-endian.
Other architectures number the bytes in a binary word from right to left, which is referred to as little-endian.
Using big-endian and little-endian methods, the number 0x12345678 would be stored as shown in the following table.
[b][/b]
例子:
下面C# code中有2个txt文件:LittleEndian.txt和BigEndian.txt,他们包含相同的文本内容:都是aa,但不同的编码方式,分别是UCS-2 Little Endian 和UCS-2 Big Endian.
示例中先分别用二进制的方式读出文件中的内容;再用StreamReader读出文件的内容
输出:
结论:
UCS-2 Little Endian编码的文件,其内容以FFFE开头;
UCS-2 Big Endian编码的文件,其内容以FEFF开头;
big-endian.
Other architectures number the bytes in a binary word from right to left, which is referred to as little-endian.
Using big-endian and little-endian methods, the number 0x12345678 would be stored as shown in the following table.
[b][/b]
Byte order | Byte 0 | Byte 1 | Byte 2 | Byte 3 |
Big-endian | 0x12 | 0x34 | 0x56 | 0x78 |
Little-endian | 0x78 | 0x56 | 0x34 | 0x12 |
下面C# code中有2个txt文件:LittleEndian.txt和BigEndian.txt,他们包含相同的文本内容:都是aa,但不同的编码方式,分别是UCS-2 Little Endian 和UCS-2 Big Endian.
示例中先分别用二进制的方式读出文件中的内容;再用StreamReader读出文件的内容
static void Main(string[] args) { byte[] leBytes = ReadAsBinary(".\\LittleEndian.txt"); Console.WriteLine("Little Endian:"); PrintByteArray(leBytes); Console.WriteLine(); byte[] bigBytes = ReadAsBinary(".\\BigEndian.txt"); Console.WriteLine("Big Endian:"); PrintByteArray(bigBytes); Console.WriteLine(); byte[] srByes; using (StreamReader reader = new StreamReader(".\\LittleEndian.txt", true)) { srByes = Encoding.Unicode.GetBytes(reader.ReadToEnd()); } Console.WriteLine("StreamReader Little Endian:"); PrintByteArray(srByes); Console.WriteLine(); } private static byte[] ReadAsBinary(string path) { FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read); BinaryReader breader = new BinaryReader(fs); byte[] bytes = breader.ReadBytes(6); return bytes; }
输出:
结论:
UCS-2 Little Endian编码的文件,其内容以FFFE开头;
UCS-2 Big Endian编码的文件,其内容以FEFF开头;
相关文章推荐
- 大端和小端(Big endian and Little endian)
- 大端和小端(Big endian and Little endian)
- 大端和小端(Big endian and Little endian)
- Big endian and Little endian
- Big-Endian and Little-Endian Test in Arm and PowerPC CPU
- Big-Endian and Little-Endian Test in ARM and PowerPC SoC
- big-endian and little-endian 及 网络字节序 主机字节序
- big endian and little endian
- big and little endian
- 大小端模式little endian and big endian
- Difference between big-endian and little-endian
- 大端和小端(Big endian and Little endian)
- Big-endian and little-endian
- 操作系统 大端和小端(Big endian and Little endian)
- Big-endian and Little-endian
- Big endian and Little endian
- Big-Endian and Little-Endian
- CSAPP:Big endian and Little endian
- 关于字节在内在存放的顺序(Big Endian and Little Endian)
- little-endian And big-endian