您的位置:首页 > 其它

大小端介绍及其检测方法

2017-11-02 20:57 162 查看
大小端介绍

大端存储

将一个数据的低字节序的内容存储到高地址处,高字节序的内容存储到低地址处。



2.小端存储

将一个数据的低字节序内容存储到低地址处,将高字节序的内容存储到高地址处。



检测方法

算法一:

取出一个整型数的地址,并拿出第一个字节判断是高字节序还是低字节序

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int check_sys()
{

int a = 1;
char *p = (char *)&a;     //取地址并取出第一个字节进行
return *p;                //返回第一个字节,是1为小端存储,是0为大端存储
}

int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端存储\n");
}
else if (ret == 0)
{
printf("大端存储\n");
}
return 0;
}


算法二:

利用共用体成员共用一块空间,取出第一个字节的地址,进行判断

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int check_sys()
{

union  Un
{
char c;
int i;
}u;
u.i = 1;             //整型和字符型共用同一块空间,取出第一个字节的地址
return  u.c;
}

int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端存储\n");
}
else if (ret == 0)
{
printf("大端存储\n");
}
return 0;
}


运行结果:



注:以上结果在win 10 vs2013 环境下测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: