EDN首页   博客首页

日志档案

发表于 2007-12-4 10:58:06

1

标签: 无标签

Big-endian和Little-endian

简而言之:
Big endian machine: It thinks the first byte it reads is the biggest.
Little endian machine: It thinks the first byte it reads is the littlest.
举个例子,从内存地址0x0000开始有以下数据
 0x0000     0x12
 0x0001     0x34
 0x0002     0xab
 0x0003     0xcd
如果我们去读取一个地址为0x0000的四个字节变量,若字节序为big-endian,则读出
结果为0x1234abcd;若字节序位little-endian,则读出结果为0xcdab3412.
如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为
                big-endian     little-endian
0x0000     0x12              0xcd
0x0001     0x23              0xab
0x0002     0xab              0x34
0x0003     0xcd              0x12
x86系列CPU都是little-endian的字节序.

我公司所用的MIPS-R3000是big-endian的字节序.所以在读取文件时要进行转换.

系统分类: 嵌入式   |   用户分类: C语言编程   |   来源: 转贴   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(278)    回复(0)  

投一票您将和博主都有获奖机会!