博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
little-endian and big-endian
阅读量:6282 次
发布时间:2019-06-22

本文共 1790 字,大约阅读时间需要 5 分钟。

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

 

转载于:https://www.cnblogs.com/jenneyblog/archive/2010/06/29/1767330.html

你可能感兴趣的文章
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>
Docker之功能汇总
查看>>
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>
mysql性能的检查和调优方法
查看>>
项目管理中的导向性
查看>>
Android WebView 学习
查看>>
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>