字节序(大小端)详解从高低地址和高低位开始理解(转)_第1页
字节序(大小端)详解从高低地址和高低位开始理解(转)_第2页
字节序(大小端)详解从高低地址和高低位开始理解(转)_第3页
字节序(大小端)详解从高低地址和高低位开始理解(转)_第4页
字节序(大小端)详解从高低地址和高低位开始理解(转)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、字节序(大小端)详解从高低地址和高低位开始理解(转一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:和。引用标准的和的定义如下:就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。网络字节序:个字节的值以下面的次序传输:首先是,其次,然后,最后是。这种传输次序称作大端字节

2、序。由于首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。比如,以太网头部中2字节的“以太网帧类型”,表示后面数据的类型。对于请求或应答的以太网帧类型来说,在网络传输时,发送的顺序是,0在内存中的映象如下图所示:栈底(高地址)低位高位栈顶(低地址)该字段的值为8按照大端方式存放在内存中。二、高低地址与高低字节首先我们要知道我们程序映像中内存的空间布局情况:在专家编程中或者环境高级编程中有关于内存空间布局情况的说明,大致如下图:最高内存地址|栈底.栈.栈顶空洞未初始化的数据统-称-数-据-段-)(初始化的数据正文段(代码段)最低内存地址以上图为例如果我们在栈上分配一个

3、,那么这个数组变量在栈上是如何布局的呢注1?看下图:栈底(高地址)栈顶(低地址)现在我们弄清了高低地址,接着来弄清高低字节,如果我们有一个位无符号整型呵呵,恰好是把上面的那个字节看成一个整型,那么高位是什么,低位又是什么呢?其实很简单。在十进制中我们都说靠左边的是高位,靠右边的是低位,在其他进制也是如此。就拿来说,从高位到低位的字节依次是13和7高低地址和高低字节都弄清了。我们再来回顾一下和的定义,并用图示说明两种字节序:以为例,分别看看在两种字节序下其存储情况,我们可以用来表示:低地址存放高位,如下图:栈底(高地址)低位高位栈顶(低地址)低地址存放低位,如下图:栈底(高地址)(高0位(低0位栈顶(低地址)在现有的平台上的采用的是TOC o 1-5 h z而像的采用的就是。三、例子嵌入式系统开发者应该对和模式非常了解。采用模式的对操作数的存放方式是从低字节到高字节,而模式对操作数的存放方式是从高字节到低字节。例如,宽的数在模式内存中的存放方式(假设从地址开始存放)为:内存地址存放内容0 x40010 x12而在模式内存中的存放方式则为:内存地址存放内容宽

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论