c-语言,大端数据转换为小端数据

c语言编码,实现函数long htonl(long a),也就是将主机序转化为网络序
//网络序统一为大端。该算法主要需要测试主机序,如果是大端则不做任何的改变,如果是小端则逆序



bool IsLittle()//判断主机序是否为小端
{
     
	short a  = 0x0001;
	return *(char *)&a == 0x01;
}

long Htonl(long a)
{
     
	long b = 0;

	if( !IsLittle() )//大端
	{
     
		return a;
	}

	for(int i=0;i<sizeof(a);i++)
	{
                                            
		b = (b<<8) | (a & 0xff);
		a >>= 8;      
	}
	return b;
}

int main()
{
     
	printf("%x\n",Htonl(0x12345678));

	return 0;
}

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