9.8网编基础知识day1
大小端,网络字节序和主机转换,IP地址的点分十进制转网络字节序
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <25061head.h>
union A
{int num1;char num2;};
int main(int argc, const char *argv[])
{int num1=0x12345678;//点分十进制转网络字节序char *a="192.168.108.140";int addr=inet_addr(a);printf("192.168.108.140的网络字节序=%#x\n",addr);//大小端存储判断if((char)num1==0x12){printf("大端\n");}else if((char)num1==0x78){printf("小端\n");}//用共用体实现大小端存储判断union A buf;buf.num1=0x12345678;if(buf.num2==0x12){printf("大端\n");}else if(buf.num2==0x78){printf("小端\n");}//偏移量printf("%p\n",&buf.num2);printf("%p\n",&buf.num2+1);//主机字节序转网络字节序int num3=htonl(num1);printf("%#X\n",num3);return 0;
}
结果
ubuntu@ubuntu:~/work/wangbian$ ./a.out
192.168.108.140的网络字节序=0x8c6ca8c0
小端
小端
0x7ffeb7211180
0x7ffeb7211181
0X78563412
ubuntu@ubunt