大端、小端问题详解
2012-05-25 10:18:19 来源:WEB开发网核心提示:四、 什么是高/低字节现在我们弄清了高/低地址,接着考虑高/低字节,大端、小端问题详解(3),有些文章中称低位字节为最低有效位(LSB),高位字节为最高有效位(MSB),分别看看在两种字节序下其存储情况,我们可以用unsigned char buf[4]来表示value:Big-Endian: 低地址存放高位,如果我们
四、 什么是高/低字节
现在我们弄清了高/低地址,接着考虑高/低字节。有些文章中称低位字节为最低有效位(LSB),高位字节为最高有效位(MSB)。如果我们有一个32位无符号整型0x12345678,那么高位是什么,低位又是什么呢? 其实很简单。在十进制中我们都说靠左边的是高位,靠右边的是低位,在其他进制也是如此。就拿 0x12345678来说,从高位到低位的字节依次是0x12、0x34、0x56和0x78。
高/低地址端和高/低字节都弄清了。我们再来回顾 一下Big-Endian和Little-Endian的定义,并用图示说明两种字节序:
以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况,我们可以用unsigned char buf[4]来表示value:
Big-Endian: 低地址存放高位,如下图:
栈底 (高地址)
---------------
buf[3] (0x78) -- 最低有效位(LSB)
buf[2] (0x56)
buf[1] (0x34)
buf[0] (0x12) -- 最高有效位(MSB)
---------------
栈顶 (低地址)
Little-Endian: 低地址存放低位,如下图:
栈底 (高地址)
---------------
buf[3] (0x12) -- 最低有效位(LSB)
buf[2] (0x34)
buf[1] (0x56)
buf[0] (0x78) -- 最高有效位(MSB)
--------------
栈 顶 (低地址)
五、Big-Endian和Little-Endian优缺点
更多精彩
赞助商链接