存储模式:
小端:较高的有效字节存储在较高的存储器地址,较低的有效字节存储在较低的存储器地址。
大端:较高的有效字节存储在较低的存储器地址,较低的有效字节存储在较高的存储器地址

STM32 属于小端模式,简单地说:比如:temp=0X12345678;假设temp的地址为:0X4000 0000
那么,在内存里面,其存储就变成了:
|       地址                           |    HEX                       |
|0X4000 0000                    |    78 56 34 12           |

更为简单一点:
低地址---------->高地址【大端模式】

数据高位------->数据低位
0X12|0X34|0X56|0X78|

低地址---------->高地址【小端模式】

数据低位-------->数据高位
0X78|0X56|0X34|0X12|

大端与小端的优势
二者无所谓优势,无所谓劣势,各自优势便是对方劣势
大端模式:符号位的判定固定为第一个字节,容易判断正负。
小端模式:强制转换数据不需要调整字节内容,1、2、4字节的存储方式一样

数组在大端小端情况下的存储:
以unsigned int value = 0x12345678为例,
分别看看在两种字节序下其存储情况,
我们可以用unsigned char buf[4]来表示value:
Big-Endian: 低地址存放高位,如下:
高地址                    数据位
  |   ---------------           |
  |    buf[3] (0x78) -- 低位
  |    buf[2] (0x56)        |
  |     buf[1] (0x34)       | 
  |    buf[0] (0x12) -- 高位
  |     ---------------
低地址

Little-Endian: 低地址存放低位,如下:
高地址
       ---------------
       buf[3] (0x12) -- 高位
       buf[2] (0x34)
       buf[1] (0x56)
       buf[0] (0x78) -- 低位
       --------------
低地址

为何会出现大小端之分:
这是因为在计算机系统中,我们是以字节为单位的,
每个地址单元都对应着一个字节,一个字节为8bit。
但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),
另外,对于位数大于8位的处理器,例如16位或者32位的处理器,
由于寄存器宽度大于一个字节,那么必然存在着一个如果将多个字节安排的问题。
因此就导致了大端存储模式和小端存储模式。
例如一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122,
那么0x11为高字节,0x22为低字节。对于大端模式,就将0x11放在低地址中,即0x0010中,
0x22放在高地址中,即0x0011中。小端模式,刚好相反。
我们常用的X86结构是小端模式,而KEIL C51则为大端模式。
很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

字节序:【一般操作系统都是小端,而通讯协议是大端的】
常见CPU字节序
Big Endian : PowerPC、IBM、Sun
Little Endian : x86、DEC
ARM既可以工作在大端模式,也可以工作在小端模式

大小端模式,stm32采用小端模式相关推荐

  1. mysql是大端小端_大端和小端 - HackerVirus - 博客园

    在计算机中是以字节为单位,每个地址对应一个字节,一个字节8bit.在C中,除了8bit的char以外,还有16bit的short,32位的int,64位long,当然具体要由编译器决定,可以通过siz ...

  2. aurora IP中选择了小端支持,但小端体现在了什么地方呢?

    aurora协议中,默认是大端模式,但可在定制IP的时候选择小端支持,如下图所示: 尽管如此,产生的示例逻辑,还是有部分地方使用了大端的表示方法: 例如顶层: // User I/O input RE ...

  3. STM32和C51的大端模式与小端模式

    目录 小段模式(Little Endian) 大端模式(Big Endian) C51使用大端模式 STM32使用小段模式 使用代码验证大小端模式 在大多数微处理器架构中,在一个地址单元仅存储一个字节 ...

  4. C/C++之大端模式和小端模式

    Byte Endian是指字节在内存中的组织,所以也称它为Byte Ordering或Byte Order.对于数据中跨越多个字节的对象, 我们必须为它建立这样的约定: (1) 它的地址是多少? (2 ...

  5. 大端模式小端模式 主机序网络序

    1. 主机序 不同的CPU有不同的字节序类型这些字节序是指整数在内存中保存的顺序,这个叫做主机序.最常见的有两种: 1.         Little endian:将低序字节存储在起始地址. 即小端 ...

  6. 大端模式小端模式、主机序网络序、入栈地址高低问题

    一.大端模式&小端模式 所谓的"大端模式",是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把 ...

  7. 大端小端模式判断以及数据转换

    简介 在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit.但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体 ...

  8. 大端和小端存储模式解析

    一.大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的<格利佛游记>:Lilliput和Blefuscu这两个强国在过去的36个月中一 ...

  9. 大端模式与小端模式的详解分析

    大端序与小端序 何为大端序,小端序? 简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序了.注意字节序是硬件层面 ...

最新文章

  1. 颜色缩减(带Trackbar)【从毛星云Opencv3编程入门P75 P111例程改编】
  2. 短视频风口创业不容易,您信吗?
  3. window环境安装composer
  4. 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----ICMP篇
  5. 正则表达式实现手机号中间4位数隐藏或者只显示末尾四位数
  6. 单机最大负载_分布式高可靠之负载均衡,今天看了你肯定会
  7. C++ windows 平台的 Hook
  8. c语言指针算法分析怎么写,什么叫指针算法啊??
  9. 7宗命案,潜逃23年,大数据还是认出了她
  10. 【Java】计算1+1/2!+1/3!+1/4!....前20项
  11. SharePoint Welcome.ascx 控件自定义样式的另类解决方式
  12. java 蓝桥杯 数字游戏
  13. java分层窗格_java 简洁的分层实现
  14. html 通用ui css图标,ui-icon.html
  15. 在CentOS 7上安装Node.js的4种方法(yum安装和源码安装)
  16. 是男人就下100层【第二层】——帮美女更衣(1)
  17. js实现json转excel的npm包
  18. Windows环境搭建Red5流媒体服务器
  19. Apache Tomcat漏洞总结
  20. 空降到一个公司做高管,怎么打开局面?

热门文章

  1. HDU 2833 WuKong
  2. php基础语法(文件加载和错误)
  3. 新玩法,CentOS7中LVM通过扩展逻辑卷扩展swap空间
  4. Codeforces #440.Div.2
  5. 模式分类笔记--聚类分析算法
  6. css选择器中间的空格
  7. 编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件
  8. Oracle 数据恢复指导具体解释
  9. docker部署项目,对镜像,容器的操作
  10. TensorFlow RNN tutorial解读