声明:本文是在32位机器,vs2013下运行无误
大小端背景:
大小端这一词最早是来自《格列夫游记》,书中记录有一个村子,村子里的人有一个强烈的争议,关于吃鸡蛋的时候应该从小头敲破鸡蛋(Little Endian),还是从大头敲破鸡蛋(Big Endian),并因此发生了一场不小的争斗。在计算机的内存存储模式上,Endian表示在存储器下面的存储方式。
机器分类:
大端模式:数据的高字节保存在内存的低地址中,数据的低位字节保存在高地址中。
小端模式:数据的高字节保存在内存的高地址中,数据的低位字节保存在低地址中。
图示举例:
代码实现(结构体实现):
#include<stdio.h>
struct IsBit
{
char ch;
int a;
};
int main()
{
struct IsBit ret;
ret.ch = 1;
if (ret.ch == 1)
{
printf("当前机器是大端\n");
}
else
{
printf("当前机器是小端\n");
}
system("pause");
return 0;
}
代码实现(利用类型转换实现):
#include<stdio.h>
int main()
{
int a = 1;
char ch = a;
if (a == 1)
{
printf("当前机器是大端\n");
}
else
{
printf("当前机器是小端\n");
}
system("pause");
return 0;
}
程序运行结果: