一个ip地址字符串如“192.168.100.100”,怎么(4*3+3+1)*1=16个字节,如果将ip地址是32bit,可以使用4个字节实现ip地址的压缩。
1 #include <stdio.h> 2 #include <stdlib.h> 3 //将IPV4转换成整数,例如192.168.0.0 32it 可以使用一个unsigned int表示 4 int change(char * str) 5 { 6 unsigned int a=0; 7 int n=0;//点的个数 8 int sum=0;//每个数值 9 int m[]={0x1000000,0x10000,0x100,1}; 10 while(*str!=‘\0‘) 11 { 12 if(*str !=‘.‘) 13 { 14 sum=sum*10+(*str-‘0‘); 15 } 16 else 17 { 18 a+=sum*m[n++]; 19 sum=0; 20 } 21 str++; 22 } 23 a+=sum; 24 return a; 25 } 26 27 int main() 28 { 29 char*str="192.168.1.255"; 30 printf("%d\n",change(str)); 31 return 0; 32 }
时间: 2024-11-05 23:27:28