***************************************************

更多精彩,欢迎进入:http://shop115376623.taobao.com

***************************************************

大小端的问题剖析:
嵌 入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是 从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,16bit宽的数0x1234在Little-endian 模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:


内存地址

0x4000

0x4001

存放内容

0x34

0x12

而在Big-endian模式CPU内存中的存放方式则为:


内存地址

0x4000

0x4001

存放内容

0x12

0x34

我们常用的X86结构是小端模式,而KEIL C51则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

以下这段代码可以用来判断当前处理器的大小端模式

#include<stdio.h>

void main()
{
    int a = 0x01;
    char * p = (char*) & a;
    if(*p == 1)
        {
        printf("little endian\n");
        }
    else
        {
        printf("big endian\n");
        }
}

大小端存储问题,如果小端方式中(a 占至少两个字节的长度)则 a 所分配的内存最小地址那个字节中就存着1,其他字节是0.大端的话则1在 a 的最高地址字节处存放,char是一个字节,所以强制将char型量p指向a则p指向的一定是a的最低地址,那么就可以判断p中的值是不是1来确定是不是小端。

大小端模式的快速判断方法相关推荐

  1. 大小端模式以及两种判断方法

    文章目录 基本概念 判断方法 END 基本概念 首先来看某百科定义: 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中. 小端模式,是指数据的高字节保存在内存的高地址 ...

  2. 大小端模式的判断方法

    1. 大小端模式 大端模式:数据的高字节存储在内存的低地址中. 小端模式:数据的低字节存储在内存的低地址中. 两种模式的区别就是数据在内存中是先存储高字节还是低字节,先存高字节就是大端模式,先存低字节 ...

  3. 判断cpu大小端模式(c++代码实现)

    首先来了解一下大小端模式. 大端模式:高位对应低地址,低位对应高地址 :换而言之,就是数字的高位存放在内存的低址地,低位存放在内存的高地址 小端模式:高位对应高地址,低位对应低地址 :即数字的高位存放 ...

  4. C语言中低位存放,C语言 大端小端存储解析以及判断方法

    当我们在C语言中查看数据在内存中的存储时,我们经常会发现一个很奇怪的现象,什么现象呢? 例如下面这段代码 int main() { int i = 1; return 0; } 数据在内存中的存放方式 ...

  5. C语言程序设计 | 大端小端存储解析以及判断方法

    当我们在C语言中查看数据在内存中的存储时,我们经常会发现一个很奇怪的现象,什么现象呢? 例如下面这段代码 int main() {int i = 1;return 0; } 数据在内存中的存放方式似乎 ...

  6. CPU大小端模式对C语言底层开发的影响

    CPU大小端模式对C语言底层开发的影响 ​ 在嵌入式的c语言底层开发过程中,经常会遇到CPU大小端模式的问题,对底层软件的数据结构构建.数据解析.甚至功能实现上均有一定的影响,我自己在ECU的底层软件 ...

  7. C/C++ 关于大小端模式

    大端模式:  数据的高字节存在低地址  数据的低字节存在高地址 小端模式:  数据的高字节存在高地址  数据的低字节存在低地址 如图,i为int类型占4个字节,但只有1个字节的值为1,另外3个字节值为 ...

  8. .pgr照片文件解析,C++与Java存储数据差别大小端模式

    一..pgr是什么? .pgr文件是二进制的图像文件,可以用普通的文本文件打开,或者查看十六进制的文本信息: 读取需要了解~~~非常重要 !!! 基本数据类型的大小端存储模式 表头Header 详细信 ...

  9. Linux系统的大小端模式

    大端模式 所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数 ...

最新文章

  1. C++中的两种绑定方式(静态绑定、动态绑定)
  2. ARM Linux 3.x的设备树(Device Tree)【转】
  3. 自定义Exchange2003未送达报告(NDR)
  4. 【Tools】VNC Viewer 6.20安装详解
  5. 7.程序员的自我修养---动态链接
  6. 雷达信号处理读书笔记
  7. sql Server配置管理器
  8. matlab中gen2par函数,R语言中的par()函数终于明白了
  9. matlab指数e是如何表示,Matlab中表达e怎么操作?表达e方法详解
  10. 期货卖出平仓价和买入平仓价(期货平仓价和结算价)
  11. LaTeX插入视频示例
  12. plt.xticks()
  13. 在Win32中使用OpenGL
  14. 计算机绘制表格教案,《表格的制作》教学设计
  15. CSS+div布局总结(快速入门,附代码)
  16. Chrome 谷歌浏览器下载网页中的背景图、图标等
  17. linux摄像头拍照程序,Android开发:Camera初探——控制摄像头拍照
  18. 深圳大学算法设计实验五
  19. Android tv树莓派遥控器,树莓派的kodi设置遥控器的方法
  20. 数制转换的概念和转换

热门文章

  1. 详解 springboot - 查看、修改内置 tomcat 版本
  2. Python基础-time and datetime
  3. cassandra 环境搭建
  4. 1837Balance
  5. 同步数据库仅在Worker内,目前只有Chrome6支持
  6. 微软发布Enterprise Library 4.1和Unity 1.2
  7. 终于用上gcc-4.1编译的系统了
  8. 关于爬虫中常见的两个网页解析工具的分析 —— lxml / xpath 与 bs4 / BeautifulSoup...
  9. 《树莓派学习指南(基于Linux)》——1.4 将Raspbian烧录到SD卡
  10. commons-fileupload、smartUpload和commons-net-ftp