实验8-2-10 IP地址转换
正常模拟,每八位为一个数字。
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
char str[40];
gets(str);
int len=strlen(str);
//二进制转为10进制,每一位乘于 2的(当前位-1)的平方。
//因为一组为八位数,所以最高位的平方为7,故设ws为7。
int res=0,ws=7;
for(int i=0;i<len;i++){
//看0还是1
res+=(str[i]-'0')*pow(2,ws);
//从高往低,每次位数减一
ws--;
//每八位,重置
if((i+1) % 8 == 0){
//最后一组,不要输出后面那个点
if(i == 31){
printf("%d",res);
}else{
printf("%d.",res);
}
//重置
res=0;
ws=7;
}
}
return 0;
}