大小端存储
int main(int argc, const char *arg[])
{
int num=0x12345678;
//定义一个字符串,指向num的首地址
char* ptr=(char*)#
if(*ptr==0x12)
{
printf("大端存储\n");
}else if(*ptr==0x78)
{
printf("小端存储\n");
}
return 0;
}
int main(int argc, const char *argv[])
{
//建立一个共同体
union Endio
{
int num;
char ch;
}data;
//给num赋值
data.num=0x12345678;
if(data.ch==0x12)
{
printf("大端存储\n");
}else if( data.ch==0x78)
{
printf("小端存储\n");
}
return 0;
}
主机字节序转换网络字节序
int main(int argc, const char *argv[])
{
//定义一个4字节
unsigned int num=0x12345678;
//定义一个2个字节的整数
unsigned short value=0x1234;
//将主机字节序转换为网路字节序
unsigned int num1=htonl(num);
unsigned short value1=htons(value);
printf("num1=%#x\n",num1);
printf("value1=%#x\n",value1);
return 0;
}
点分十进制和整数的转换
int main(int argc, const char *argv[])
{
//建立一个IP地址
char* ip="192.168.71.128";
//调用函数点分十进制转化为整数
in_addr_t ip_test= inet_addr(ip);
printf("ip_test= %#x\n",ip_test);
printf("对应的主机字节序=%#x\n",ntohl(ip_test));
return 0;
}
思维导图