大端模式
所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存
在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模
式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从
高位往低位放;
小端模式
所谓的小端模式,是指数据的低位保存在内存的低地址
位权有效地结
合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
为什么有大小端模式之分
为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字
节为单位的,每个地址单元都对应着一个字节,一个字节为 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 处理器还可以由硬
件来选择是大端模式还是小端模式。
在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信
领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应
该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码
从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:
big-edian 和 little-endian
本文简要描述这两种存储机制的来历、特点和区别。
为了叙述方便,下面先对本文中将要用到的两个术语做简单的定义。
1、MSB
MSB 是 MostSignificantBit/Byte 的首字母缩写,通常译为最重要的位或者最重要的字
节。它通常用来表明在一个 bit 序列(如一个 byte 是 8 个 bit 组成的一个序列)或者一个
byte 序列(如 word 是两个 byte 组成的一个序列)中对整个序列取值影响最大的那个 bit/
byte。
2、LSB
LSB 是 LeastSignificantBit/Byte 的首字母缩写,通常译为最不重要的位或者最不重要
评论0
最新资源