6.2 存储的基本概念
大端模式、小端模式
不同处理器存储模式不同:
ARM、X86、DSP一般小端模式
IBM、Sun、PowerPC一般大端模式
为什么会有大小端之分
小端模式符合如何人的思维习惯:低地址存储低字节数据
大端模式符合计算机处理习惯:不需要考虑对应关系,按照字
节,把数据从左到右,按由低到高地址顺序直接读写。
大端模式一般用在网络字节序、各种编解码中
编程判断大小端
法1
#include<stdio.h>
int main1(void)
{
int a = 0x11223344;
char b;
b = a;
if(b==0x44)
printf("Little endian!\n");
else
printf("Big endian!\n");
return 0;
}
法2
int main(void)
{
union u{
int a;
char b;
}c;
c.a = 0x11223344;
if(c.b==0x44)
printf("Little endian!\n");
else
printf("Big endian!\n");
return 0;
}
位序
与字节序一致
数据的大小端转换
#define swap_endian_u16(A) \
(( A & 0xFF00 >> 8) | ( A & 0x00FF<< 8))