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

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


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

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


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


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


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

举个例子:

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

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

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



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

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


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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值