关于大端字节序和小端字节序

来源:互联网 发布:mac的qq不能远程 编辑:程序博客网 时间:2024/06/05 20:33

现在,大多数的计算机都是按字节编址的(除了按字节编址还有按字编址和按位编址)。所以这里只讨论按字节编址的计算机。


大端字节序:数据的高字节保存在低地址。

小端字节序:数据的高字节保存在高地址。


计算机中的内存可以看成是线性的(这里只讨论按字节编址), 如下图:


从上图可以看出,一个int型是16位也就是两个字节的长度,一共可以表示2^16byte(也就是64KB)的内存。


现在我们来看看一个int型分别在大端和小端是怎么存储的。

举个例子:

我们现在有一个整数是258。用16进制表示是0x0102, 然后我们把这个整数拆分成两个字节,第一个字节为0x01, 第二个字节为0x02.

对应的二进制分别是:0000 0001    和   0000 0010。

如果在一个使用大端字节序的电脑上,这个整数会被这样存放:



这跟我们平时上课教的使用的字节序是一样的。都是高位在低地址。

如果一个使用小端字节序的电脑上,这个整数的高字节就会存放在高地址上:


仔细看低地址的内容编程了int型的低字节部分,也就是0000 0010。

以上就是大端和小端计算机在存储数据方面的区别。

原文链接 :http://blog.csdn.net/sky453589103/article/details/50595287
原创粉丝点击