C语言------什么叫大端小端

我们都知道在计算机中是以二进制的方式存储数据的,对于整形来说:数据存放内存中其实存放的是补码。
举个栗子:
               int a = 7;
               int b = 1;
这两个变量在内存中是这样存放的
数据存储顺序和我们想象的不太一样,这就是大端小端存储模式的原因。

什么叫大端

大端字节序(大端存储模式):一个数据的低位字节序放在高地址,高位字节序的内容放在低地址。

什么叫小端

端字节序(小端存储模式):一个数据的低位字节序放在低地址,高位字节序的内容放在高地址。


一道面试题:

       设计一个小程序来判断当前机器的字节序。
 
 
int check_sys()
 {
 	int a = 1;
 	char *p = (char *)&a;
 	if(*p == 1)
 		return 1;
 	else
 		return 0;
 }
int main()
{
	if(check_sys() == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	system("pause");
	return 0;
}

或者:
//int check_sys()
//{
//	int a = 1;
//	//如果是小端返回1
//	//如果是大端返回0
//	return *(char *)&a;
//}
 int check_sys()
 {
 	int a = 1;
 	char *p = (char *)&a;
 	return *p;
 }
int main()
{
	if(check_sys() == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/abc_xixi111/article/details/79934229