大端、小端是什么
大端存储:是指将数据低位放于高地址中,将数据高位放于低地址中。
小端存储:是指将数据低位放于低地址中,将数据高位放于高地址中。
大端、小端为什么这么区分
因为在计算机系统中,是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8 bit。但是在C语言中除了8 bit的char之外,还有16 bit的short 型,32 bit的long型(要看具体的编器),另外,对于位数大于8位的处理器,例如16位或者32 位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。
设计一个函数来判断大小端
#include<stdio.h>
int check_sys()
{
int a = 1;
return (*(char*)&a);
}
int main()
{
int key = 0;
key = check_sys();
if (key == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
在不同的环境下,所使用的是大小端有可能不同。