如何判断自己的电脑是大端还是小端

在这里插入代码片
int check()
{
	int t = 1;
	return *(char*)&t;     
}

int main()
{
	int i = check();
	if (1 == i)
		printf("是小端\n");
	else if (1 != i)
		printf("是大端\n");

	system("pause");
	return 0;
}

int t=1;
return * (char *)&t
这两行代码是判断电脑是否为大小端的关键所在,首先你设定了 t 是 int 型 ,所以电脑为这个变量开辟了四个字节的空间,电脑可能把 1 存 在这四个字节的最前面 一个字节或者最后面一个字节,如果存在了最前面,那么这个电脑就是小端,存在最后面,这个电脑就是大端, 现在你 强制类型转换,把Int 型改成 char 型 (改为 char 型 ,因为32 位机每个内存格子代表一个字节,最小内存为一个字节),这样你就可以判断到底这个 1 是存在前面还是后面了。

猜你喜欢

转载自blog.csdn.net/qq_41577616/article/details/83796510