计算机存储数据(如一个int型)时分为大端存储和小端存储两种方式;小端存储方式为低地址存储低字节数据,高地址存储高字节数据。大端存储方式相反,即:低地址存储高字节数据,高地址存储低字节数据。X86下存储方式为小端存储,Power PC为大端存储(ARM也可设置为大端存储)。
具体存储方式示意图如下:(小端存储方式示意)
低地址存储底字节数据,高地址存储低字节数据
测试方法:1.定义一个包含int 和 char到联合体union 2.利用char*型到指针
方法一代码:
- #include<stdio.h>
-
#include<stdlib.h>
-
-
int main(int argc ,char *argv[])
-
{
-
union name{
-
int i;
-
char a;
-
}c;
-
c.i=0x04030201;
-
-
printf("%d\n",c.a);//输出4为大端存储,输出1为小端存储
-
return 0;
-
}
方法二代码:
- #include<stdio.h>
-
#include<stdlib.h>
-
-
-
int main(int argc ,char *argv[])
-
{
-
int num = 0x04030201;
-
char *p = (char*)#
-
-
printf("address is %p,count is %d\n",p,*p);//输出4为大端存储,输出1为小端存储
-
printf("address is %p,count is %d\n",p+1,*(p+1));
-
printf("address is %p,count is %d\n",p+2,*(p+2));
-
printf("address is %p,count is %d\n",p+3,*(p+3));
-
return 0;
-
}
阅读(3046) | 评论(0) | 转发(1) |