zoukankan      html  css  js  c++  java
  • littleendian and bigendian

    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.

     

    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开头;

  • 相关阅读:
    Codeforces 543E. Listening to Music
    UOJ #138. 【UER #3】开学前的涂鸦
    bzoj 3569: DZY Loves Chinese II
    bzoj 2428: [HAOI2006]均分数据
    bzoj 4589: Hard Nim
    UOJ #119. 【UR #8】决战圆锥曲线
    spoj5973
    codeforces555E
    poj1275
    bzoj4152
  • 原文地址:https://www.cnblogs.com/jenneyblog/p/1767330.html
Copyright © 2011-2022 走看看