本文目录一览

1,8051单片机是大端存储还是小端存储

大端存储16位INT型数据和32位long型数据都是。数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中.
我的博客上有一篇关于仿真器的文章,上面就这个问题进行了很详细的分析,你可以去看看.

8051单片机是大端存储还是小端存储

2,大端存储和小端存储的区别

大端模式就是存放在高地址上。高位存放在地址上。  小端模式就是地位存放在低地址上。高位存放在高地址上。  例如,16bit宽的数0x1234在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:  内存地址 0x4000 0x4001  存放内容 0x34 0x12  而在Big-endian模式CPU内存中的存放方式则为:  内存地址 0x4000 0x4001  存放内容 0x12 0x34

大端存储和小端存储的区别

3,关于大端小端存储和内存的的使用

1、大端(big endian)与小端(little endian)指的是“字节序”,严格的说,并不是针对单个变量。2、后面两问有点模糊,我想你是想说,连续的定义两个变量吧,具体的地址分配行为是取决于编译器的,不过一般来说,如果分配在栈上,比如,你在main函数里面连续定义连个,一般栈是倒增长的,即这两个变量的地址将会是又高到低。如果静态分配、或者在堆上分配,比如你在main函数外,全局的连续的定义两个变量,则这两个变量的地址将会是又低到高。
平台是32位arm么? 假设地址从0x00开始: 小端: half world:0x00->0xda, 0x01->0x00,共占2bytes world:0x00->0xda, 0x01->0x00, 0x02->0x00, 0x03->0x00,共占4bytes 大端: half world:0x00->0x00, 0x01->0xda,共占2bytes world:0x00->0x00, 0x01->0x00, 0x02->0x00, 0x03->0xda,共占4bytes

关于大端小端存储和内存的的使用

4,判断计算机是大端存储还是小端存储

#include int main() { unsigned char str[4]={1,0,0,0}; unsigned int* i = (unsigned int*) str; if(*i == 1) printf("Little_endian\n"); else if(*i == 1000000) printf("Big_endian\n"); return 0; } 另外,共用体也可以拿来判断
采用大小模式对数据进行存放的主要区别在于在存放的字节顺序,大端方式将高位存放在低地址,小端方式将低位存放在高地址。采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。到目前为止,采用大端或者小端进行数据存放,其孰优孰劣也没有定论。<br><br><br>以上内容参考 <a href="http://wenwen.soso.com/z/urlalertpage.e?sp=shttp%3a%2f%2fsinaurl.cn%2fhkqdi" target="_blank">http://sinaurl.cn/hkqdi</a>

5,请教各位什么是大小端模式

端模式,英文j :Endian.该名词不只是存在于嵌入式之中.在计算机业界,简单概要的说Endian表示数据在存储器中的存放顺序。下文举例说明在计算机中大小端模式的区别。如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。为简单起见,本书使用OP0表示一个32位数据的最高字节MSB(Most Significant Byte),使用OP3表示一个32位数据最低字节LSB(Least Significant Byte)。---------------------------地址偏移 大端模式 小端模式0x00 12(OP0) 78(OP3)0x01 34(OP1) 56(OP2)0x02 56(OP2) 34(OP1)0x03 78(OP3) 12(OP0)---------------------------如果将一个16位的整数0x1234存放到一个短整型变量(short)中。这个短整型变量在内存中的存储在大小端模式由下表所示。---------------------------------地址偏移 大端模式 小端模式0x00 12(OP0) 34(OP1)0x01 34(OP1) 12(OP0)-------------------------------------由上表所知,采用大小模式对数据进行存放的主要区别在于在存放的字节顺序,大端方式将高位存放在低地址,小端方式将低位存放在高地址。采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。到目前为止,采用大端或者小端进行数据存放,其孰优孰劣也没有定论。有的处理器系统采用了小端方式进行数据存放,如Intel的奔腾。有的处理器系统采用了大端方式进行数据存放,如IBM半导体和Freescale的PowerPC处理器。不仅对于处理器,一些外设的设计中也存在着使用大端或者小端进行数据存放的选择。因此在一个处理器系统中,有可能存在大端和小端模式同时存在的现象。这一现象为系统的软硬件设计带来了不小的麻烦,这要求系统设计工程师,必须深入理解大端和小端模式的差别。大端与小端模式的差别体现在一个处理器的寄存器,指令集,系统总线等各个层次中。

6,BIG Endian 和 Little Endian模式的区别

两种不同的格式:big-endian和little-endian格式在小端模式中,低位字节放在低地址,高位字节放在高地址;在大端模式中,低位字节放在高地址,高位字节放在低地址。 如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量(文件内容)采用大端或者小端模式在内存中的存储 如果将一个16位的整数0x1234存放到一个短整型变量(short)中。这个短整型变量在内存中的存储在大小端模式采用大小模式对数据进行存放的主要区别在于【在存放的字节顺序】大端方式将高位存放在低地址,小端方式将低位存放在低地址。
区别是:big endian可以在最小的地址里存储一系列符号中最重要符号记忆的计算机,根据递减的重要性存储的方法。little endian用最小的地址储存最少的重要字节 (而用最大的地址储存最多的重要字节) 的计算机记忆力。在arm体系中,每个字单元包含4个字节单元或者两个半字单元。在字单元中,4个字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式:big-endian和little-endian格式。在小端模式中,低位字节放在低地址,高位字节放在高地址;在大端模式中,低位字节放在高地址,高位字节放在低地址。如果将一个32位的整数0x12345678(如用ultraedit打开某个文件看到的第一行头四个字节是:"00000000h:12 34 56 78")存放到一个整型变量(int)中,这个整型变量(文件内容)采用大端或者小端模式在内存中的存储。对于文件内容 0x12345678,把前面("12")的看为高端字节,后面("78")的看为低端字节,那么可以使用"高高低低"(little endian),"高低高低"(big endian)的口诀。直观的区分,如果发现内存的内容和文件的内容在顺序上以4个字节颠倒,那么他就是little edian。实现big endian和little endian主要是由编译器指定的,通常是在ccflag 加参数,如: -dendian_little,设定编译为小端字节。实际中用trace 32可以用memory dump查看内存内容,和写入文件比较后判断为大端还是小端。如果将一个16位的整数0x1234存放到一个短整型变量(short)中。这个短整型变量在内存中的存储在大小端模式。采用大小模式对数据进行存放的主要区别在于在存放的字节顺序,大端方式将高位存放在低地址,小端方式将低位存放在低地址。那么该如何判断cpu是大端模式还是小端模式呢?在c语言中,联合体union的存放顺序是所有成员都从低地址开始存放的。利用这一特点,可以用联合体变量判断arm或x86环境下,存储系统是是大端还是小端模式。 具体的代码如下:#include "stdio.h"int main() union w int a; //4 bytes char b; //1 byte } c; c.a=1; if (c.b==1) printf("it is little_endian!/n"); else printf("it is big_endian!/n"); return 1;}

文章TAG:大端  存储  8051  单片机  大端存储和小端存储  
下一篇