大小端(C语言)

一、什么是大小端:

1.大端(Big-Endian):高地址存放低位

2.小端(Little-Endian):高地址存放高位

例如:0x11223344在内存中存储大小端(C语言)_第1张图片

大小端影响了什么?

当基本数据类型占用字节数超过了1字节后,大小端决定了数据按照什么顺序存储在内存里

如何确定大小端?

        当我们不知道当前换将是大端存储还是小端存储的时候,就需要用代码来确定当前环境的大小端

1.强类型转换(int-->char)

	int n = 1;
	char* p = (char*)&n;
	if (*p == 1) {
		printf("小端\n");
	}
	else {
		printf("大端\n");
	}

2.共用体(union)

#include
union u {
	int n;
	char c;
};
int main()
{
	union u m;
	m.n = 0x11223344;
	if (m.c == 0x44) {
		printf("小端");
	}
	else {
		printf("大端");
	}
	return 0;
}

你可能感兴趣的:(c语言,开发语言)