转:大端模式和小段模式简述

大端模式和小段模式简述

C语言数据类型除char为8位外,还有16位,32位,64位等。那么对于16位或者32位的处理器,一次处理的多于8位,所以要对字节排列组合一下。也就有了大端存储格式和小端存储格式。

大端存储格式:

在这种模式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
    小端模式:
    与大端存储模式相反,在小端存储模式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。

[cpp] view plain copy

print?

  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. short int a=0x1122;
  5. int m,n;
  6. m=*((char*)&a);
  7. n=*((char*)&a+1);
  8. printf("m=%x\n",m);
  9. printf("n=%x\n",n);
  10. return 0;
  11. }

通过以上代码可以检测你的是大端还是小端。m=22,n=11小端,反之大端。

时间: 2024-08-25 05:42:27

转:大端模式和小段模式简述的相关文章

大端模式和小端模式的区别

大端模式和小端模式的区别 在C语言中除了8位的char型之外,还有16位的short型,32位的long型(要看具体的编译器),对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着如何将多个字节安排的问题.因此就导致了大端存储模式和小端存储模式. 大端模式: 字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中. 小端模式: 与大端存储模式相反,在小端存储模式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节. 例如,16位宽

大端模式与小端模式、网络字节顺序与主机字节顺序

大端模式与小端模式 一.概念及详解 在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式. 先回顾两个关键词,MSB和LSB: MSB:Most Significant Bit  ------- 最高有效位     LSB:Least Significant Bit ------- 最低有效位 大端模式(big-edian) big-endian:MSB存放在最低端的地址上. 举例,双字节数0x1234以big-endia

操作系统大端模式和小端模式

在C语言中除了8位的char型之外,还有16位的short型,32位的long型(要看具体的编译器),对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着如何将多个字节安排的问题.因此就导致了大端存储模式和小端存储模式. 大端模式: 字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中. 小端模式: 与大端存储模式相反,在小端存储模式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节. 例如,16位宽的数0x1234在小端模式

关于大端模式和小端模式

大端模式是符合人的正常思维的,低地址存放高位,这样和我们从左往右看的方式是一样的(因为我们取地址总是取的是低地址):但是小端模式更符合计算机系统 网络协议中则是采用大端模式    http://www.cnblogs.com/fuchongjundream/p/3914770.html 在网络模式 在hackbucker的博客中讲的很详细,参考:http://blog.csdn.net/hackbuteer1/article/details/7722667  一.总结博客中内容 从这篇文章中,我

存储中的大端模式和小端模式详解

什么是大端,什么是小端: 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中: 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中. 为什么会有大小端: 为什么会有大小端模式之分呢?这是因为在计算机存储系统中,我们是以字节为单位进行管理的,每个内存中的地址单元都对应着一个字节,一个字节为8bit.但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大

详解大端模式和小端模式

详解大端模式和小端模式 原文地址:http://blog.csdn.net/ce123_zhouwei/article/details/6971544 一.大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的<格利佛游记>:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战.战争的原因:大家都知道,吃鸡蛋的时候,原始 的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,

大端模式与小端模式

对于跨越多字节的程序对象,我们必须建立两个规则:这个对象的地址是什么,以及在存储器中如何安排这些字节.在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节的最小地址.例如,假设一个型为int变量x的地址为0x100,也就是说,地址表达式&x的值为0x100.那么,x的4个字节被存储在存储器的0x100,0x101,0x102和0x103位置. 排列表示一个对象的字节有两个通用的规则.考虑一个w位的整数,位表示为[Xw-1,xw-2,...,x1,x0],其中xw-1是最

计算机的大端模式和小端模式

大端模式和小端模式指的是我们计算机的存储数据的方通常又称为大尾和小尾. 大端:数据的高字节保存在内存的高地址 小端:数据的低字节保存在内存的低地址 下面是两种方式的示意图 堆栈指针寄存器SP的走向从SP到SP+3(SP始终指向栈顶) 知识链接: 断点和现场保护:这是堆栈的主要功能 保护断点指主程序调用子程序或执行中断服务程序的时候,为了能在子程序或者中断服务程序执行完之后顺利的返回主程序,必须将断点处的有关信息压入堆栈,执行完子程序后再按照先进先出的原则将其pop出来回复有关寄存器的内容,使得主

数据在内存中存储的方式:大端模式与小端模式

什么是大端模式,什么是小端模式? 所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放: 所谓小端模式(Little-endian), 是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内在的低地址中,这种存储模式将地址的高低和数据位 权有效结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致; 为什么有大小端之分: 因