大小端模式介绍 大端(存储)模式:是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。 小端(存储)模式:是指一个数据的低位字节序内容存放在低地址处,高位字节序的内容存放在高地址处。(可以总结为“小小小”即低位、低地址、小端) 一般而言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;
}
我的ubuntu就是小端
如何将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转化为十进制的值
https://allen5g.blog.csdn.net/article/details/79320789?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs
|