大小端模式介绍
大端(存储)模式:是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。
小端(存储)模式:是指一个数据的低位字节序内容存放在低地址处,高位字节序的内容存放在高地址处。(可以总结为“小小小”即低位、低地址、小端)
一般而言X86平台的PC机是小端字节序的,而有的嵌入式平台则是大端字节序的。因而对int、uint16、uint32等多于1字节类型的数据,在这些嵌入式平台上应该变换其存储顺序。
关于判断计算机大小端的代码
代码:
#include <stdio.h>
int main()
{
int i = 1;
char *a = (char *)&i;
if(*a == 1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
如何将16进制的数组转换为10进制并输出打印呢?
如果你是小端的情况下,代码如下:
#include <stdio.h>
int main()
{
char sDec[4] = {0x00,0x00,0x10,0x00};
int val = 0;
char *pBuf = (char*)&val;
pBuf[0] = sDec[3];
pBuf[1] = sDec[2];
pBuf[2] = sDec[1];
pBuf[3] = sDec[0];
printf("%d\n",val);
return 0;
}
你的输出结果应该是4096,即0X00001000转化为十进制的值
如果你是大端的情况下,代码如下:
#include <stdio.h>
int main()
{
char sDec[4] = {0x00,0x00,0x10,0x00};
int val = *(int*)sDec;
printf("%d\n",val);
return 0;
}
你的输出结果应该是1048576,即0X00100000转化为十进制的值