什么是大小端模式呢?
在介绍大小端的概念之前,我们先来介绍一个概念。
1字节=8bit
定义:所谓大小端模式指的是数据在内存当中的存储方式。
如果我们的系统是8位的(位指的是CPU一次读取数据的最大量,8位代表CPU一次可以读写8位的数据)那么在我们的计算机系统中,寄存器就可以一次性读取1字节的的数据,但是如果是32位的CPU,我们除了int类型的变量以外还有char,double等。
我们以32位系统为例,存储一个char类型的变量,char类型是1字节占8位。那么这个时候我们就要考虑存储的方式了。假设char变量可以存储的地址范围为0x00000001-0x00000004(32位系统中00000000代表32位),那么char是存储在0x00000001那里还是0x00000004那里呢?这里就引入了大小端的概念了。
大端模式:指数据的高字节保存在内存的低地址中
小端模式:指数据的高字节保存在内存的高地址中
很显然,如果CPU是小端模式,那么char是存储在0x00000001当中,如果是大端模式,那么char是存储在0x00000004当中。
那么我们怎么知道他到底是什么存储方式呢?
我们可以通过单步调试便知。
用途:通信协议中的数据传输,数组的储存方式,数据的强制类型转换等。
常见大小端模式:
stm32和操作系统属于小端模式,通信协议属于大端模式
大端模式:PowerPC IBM Sun
小端模式:X86,DEC
ARM既可以是小端也可以是大端。