大端和小端

大端和小端(Big endian and Little endian)

对于整型、长整型等数据类型,都存在字节排列的高低位顺序问题。

Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节)

而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节)。

例如,假设从内存地址 0x0000 开始有以下数据:

地址 数据
0x0000 0x12
0x0001 0x34
0x0002 0xab
0x0003 0xcd

假设我们去读取一个地址为 0x0000 的四个字节变量

若字节序为big-endian,则读出结果为0x1234abcd;

若字节序为little-endian,则读出结果为0xcdab3412。

如果我们将0x1234abcd 写入到以 0x0000 开始的内存中,则Little endian 和 Big endian 模式的存放结果如下:

地址 0x0000 0x0001 0x0002 0x0003
big-Big_endian 0x12 0x34 0xab 0xcd
little-endian 0xcd 0xab 0x34 0x12
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容