初学网络编程

请简述字节序的概念(概念、大小端),用共用体的方式求本机的大小端

字节序(Byte Order)指的是在数字在内存中表示时,字节的排列顺序。

目前常用的字节序有大端字节序(Big-Endian)和小端字节序(Little-Endian)两种。

在大端字节序中,最高位字节,也就是第一个字节存放在最低的内存地址处,对于整数0x12345678,它在大端字节序中的表示形式是0x12 0x34 0x56 0x78。

在小端字节序中,最低位字节,存放在最低的内存地址处,对于整数0x12345678,在小端字节序中的表示形式是0x78 0x56 0x34 0x12。

共用体:

#include 

union endian{
	int i;
	char c;
};

// 判断当前计算机的字节序
int check_endian(void)
{

	union endian num;
	num.i = 0x87654321;
	if(num.c == 0x21)
	{
		printf("This computer is Little-Endian\n");
		return 0;
	}
	else if(num.c == 0x87)
	{	
        printf("This computer is Big-Endian\n");
		return 1;
	}
}

int main(int argc, char const *argv[])
{
    check_endian();
    return 0;
}

 

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